首页 > 代码库 > HDU 2094解题报告
HDU 2094解题报告
刚学完set,准备做个简单题目实践一下。结果半天都WA。
下面指出WA原因。
方法是这样的,把所有输的赢的都插入a1,输的插入a2;
那么如果最后name1-name2=1,则说明只有他没输过,能判断出冠军就是剩下的那个人。
1 #include<iostream> 2 #include<set> 3 #include<string> 4 using namespace std; 5 int main() 6 { 7 int n; 8 set<string> name1,name2; 9 string a1,a2;10 while(cin>>n,n)11 {12 while(n--)13 {14 cin>>a1>>a2;15 name1.insert(a1);16 name1.insert(a2);17 name2.insert(a2);18 }19 if(name1.size()-name2.size()==1)20 cout<<"Yes"<<endl;21 else22 cout<<"No"<<endl;23 }24 return 0;25 }
结果以上代码WA了。测试多次后,AC代码如下:
1 #include<iostream> 2 #include<set> 3 #include<string> 4 using namespace std; 5 int main() 6 { 7 int n; 8 set<string> name1,name2; 9 string a1,a2;10 while(cin>>n,n)11 {12 while(n--)13 {14 cin>>a1>>a2;15 name1.insert(a1);16 name1.insert(a2);17 name2.insert(a2);18 }19 if(name1.size()-name2.size()==1)20 cout<<"Yes"<<endl;21 else22 cout<<"No"<<endl;23 name1.clear();24 name2.clear();25 }26 return 0;27 }
由此可见,良好的编程习惯多么重要。
HDU 2094解题报告
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。