首页 > 代码库 > HDU 5058 So easy
HDU 5058 So easy
http://acm.hdu.edu.cn/showproblem.php?pid=5058
题目大意:
给定两个集合,两个集合的元素都为n,求两个集合是否相等。
例如:A集合={5,3,7,7},B集合={7,5,3,3},则A集合等于B集合,
因为他们都有{3,5,7}。C集合={2,5,2,5},D集合={2,5,2,3},C集合和B集合是不等的。
因为C={2,5},D={2,3,5}
解题思路:
对A集合和B集合排序,然后去掉重复的元素,再比较。
AC代码:
1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 5 #define MAXN 100+10 6 7 int main(){ 8 int i, n, a[MAXN], b[MAXN]; 9 while(cin>> n){10 for(i = 0; i < n; ++i){11 cin>> a[i];12 }13 for(i = 0; i < n; ++i){14 cin>> b[i];15 }16 17 sort(a, a + n);//排序18 sort(b, b + n);19 20 int n1 = unique(a, a + n) - a;//去掉重复的元素21 int n2 = unique(b, b + n) - b;22 23 if(n1 == n2){24 for(i = 0; i < n1; ++i){25 if(a[i] != b[i])26 break;27 }28 if(i == n1) puts("YES");29 else puts("NO");30 }else{31 puts("NO");32 }33 }34 return 0;35 }
HDU 5058 So easy
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。