hdu1412

来源:互联网 发布:制作app软件要多少钱 编辑:程序博客网 时间:2024/05/16 00:51

stl中set的运用,又学到了一个知识点

/* * ===================================================================================== * *       Filename:  hd1412.c * *    Description:  求两个集合的并集,并顺序输出 * *        Version:  1.0 *        Created:  2013年09月26日 23时37分20秒 *       Revision:  none *       Compiler:  gcc * *         Author:  Ni WenXian (hello world~ iam coming), niwenxianq@qq.com *   Organization:  AMS/ICT * * ===================================================================================== */ #include <iostream> #include <set> using namespace std; int main(){int m,n,x;set<int> s;set<int>::iterator it;while(cin>>m>>n){s.clear();while(m--){cin>>x;s.insert(x);}while(n--){cin>>x;s.insert(x);}for(it=s.begin();it!=s.end();it++){if(it==s.begin()) cout<<*it;else cout<<" "<<*it;}cout<<endl;}return 0;}

如果不用set,自己写起来还真是麻烦. 上面方法还是借用别人的思想

看来处理这类问题,首先想到的应该是stl


方法2:

1.先把所有的数据存储到一个数组中, a[200000]

2.排序a, 不用去重,这样太麻烦,输出的时候作控制就可以了

3. 输出, 如果相同的值,就只输一个

这个还是要用到排序算法

#include <algorithm>

sort(a, a+m+n);

方法3.

直接用

set_intersection(),set_union()就行了




原创粉丝点击