您的位置:首页 > 其它

1121. Damn Single (25)

2017-01-11 23:10 375 查看
当时考试的时候,set::find忘记怎么用了。。。。然后直接从头到位遍历的。。。当然超时了。。。丢了8分,其实是看到最后一题是AVL Tree就没有用剩下的时间去猜find函数怎么用。。。

30都丢了,考多少也就无所谓了

find是用红黑树,时间复杂度log2n

今天写了一下,一A,意料之中

复习一下set中常见函数用法吧

#include<iostream>
#include<set>
using namespace std;
const int MAX = 100000;
int n , m ;
int guests[MAX]={0};
set<int> all_guests;
set<int> longly_guests;
int main(){
cin>>n;
for(int i=0;i<n;i++){
int a , b ;
scanf("%d%d",&a,&b);
guests[a]=b;
guests[b]=a;
}
cin>>m;
for(int i=0;i<m;i++){
int c;
scanf("%d",&c);
all_guests.insert(c);
}
for(set<int>::iterator it=all_guests.begin();it!=all_guests.end();it++){
if(all_guests.find(guests[*it])!=all_guests.end()){
}
else{
longly_guests.insert(*it);
}
}
cout<<longly_guests.size()<<endl;
for(set<int>::iterator it=longly_guests.begin();it!=longly_guests.end();it++){
if(it!=longly_guests.begin()) printf(" ");
printf("%05d",*it);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: