标签:style blog http color io os 使用 ar for
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5058
(格式有点问题,为了方便阅读~~~整个复制下来吧)
题目意思:给出两个长度都为 n 的集合你,问这两个集合是否相等。
其实思路非常容易想到,就是去重后判断嘛~~~我用到了set 来做。不过有个小细节!!!
1 #include <iostream> 2 #include <cstdio> 3 #include <cstdlib> 4 #include <cstring> 5 #include <set> 6 using namespace std; 7 8 set<int> a, b; 9 set<int>::iterator pa, pb; 10 11 int main() 12 { 13 #ifndef ONLINE_JUDGE 14 freopen("in.txt", "r", stdin); 15 #endif 16 17 int n, in; 18 while (scanf("%d", &n) != EOF) 19 { 20 a.clear(); 21 b.clear(); 22 for (int i = 0; i < n; i++) 23 { 24 scanf("%d", &in); 25 a.insert(in); 26 } 27 for (int i = 0; i < n; i++) 28 { 29 scanf("%d", &in); 30 b.insert(in); 31 } 32 33 bool flag = true; 34 pb = b.begin(); 35 for (pa = a.begin(); pa != a.end() && pb != b.end(); pa++, pb++) 36 { 37 if (*pa != *pb) 38 { 39 flag = false; 40 break; 41 } 42 } 43 printf("%s\n", flag && pa == a.end() && pb == b.end() ? "YES" : "NO"); 44 } 45 return 0; 46 }
特别要注意,最后不能单纯只用 flag 来判断输入和输出!!!还需要结合 pa 和 pb 的位置来判断,即都要直到集合结尾,代表元素个数是一样的。因为有可能两个集合去重之后大小不等,而for 循环中是没有考虑到这点的!!只是单纯地以比较短的那个集合来作为基准,如果遇到 {1, 3, 5} , {1, 3, 3},它会提前跳出来并且判断结果是 YES,明显是错的嘛~~~
粗心呀~~~
另外一种解法,unique 妙用,第一次使用,留个纪念吧~~~~
(unique 用之前需要先排序,而且它不是真正的删除,网上说是挪到数组后面而已)
1 #include <iostream> 2 #include <cstdio> 3 #include <cstdlib> 4 #include <cstring> 5 #include <algorithm> 6 7 using namespace std; 8 9 const int maxn = 100 + 5; 10 int a[maxn], b[maxn]; 11 12 int main() 13 { 14 #ifndef ONLINE_JUDGE 15 freopen("in.txt", "r", stdin); 16 #endif 17 18 int n; 19 while (scanf("%d", &n) != EOF) 20 { 21 for (int i = 0; i < n; i++) 22 scanf("%d", &a[i]); 23 for (int i = 0; i < n; i++) 24 scanf("%d", &b[i]); 25 sort(a, a+n); 26 sort(b, b+n); 27 int la = unique(a, a+n) - a; 28 int lb = unique(b, b+n) - b; 29 30 if (la != lb) 31 printf("NO\n"); 32 else 33 { 34 bool flag = true; 35 for (int i = 0; i < la; i++) 36 { 37 if (a[i] != b[i]) 38 { 39 flag = false; 40 break; 41 } 42 } 43 printf("%s\n", flag ? "YES" : "NO"); 44 } 45 } 46 return 0; 47 }
BestCoder12 1001.So easy(hdu 5058) 解题报告
标签:style blog http color io os 使用 ar for
原文地址:http://www.cnblogs.com/windysai/p/4008003.html