LA 3644 X-Plosives
2017-12-10 21:56
435 查看
题目:X-Plosives
思路:并查集。只有当存在环时,才有可能爆炸。
代码:#include <cstdio>
#include <iostream>
#include <algorithm>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <cstring>
#include <map>
using namespace std;
int f[1000000];
int find(int x){
if(f[x]==-1) return x;
return f[x]=find(f[x]);
}
int main() {
int x,y,ans=0;
memset(f,-1,sizeof(f));
while(~scanf("%d",&x)){
if(x==-1){
printf("%d\n",ans);
ans=0;
memset(f,-1,sizeof(f));
continue;
}
scanf("%d",&y);
int fa1=find(x),fa2=find(y);
if(fa1==fa2) ans++;
else f[fa1]=fa2;
}
return 0;
}
思路:并查集。只有当存在环时,才有可能爆炸。
代码:#include <cstdio>
#include <iostream>
#include <algorithm>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <cstring>
#include <map>
using namespace std;
int f[1000000];
int find(int x){
if(f[x]==-1) return x;
return f[x]=find(f[x]);
}
int main() {
int x,y,ans=0;
memset(f,-1,sizeof(f));
while(~scanf("%d",&x)){
if(x==-1){
printf("%d\n",ans);
ans=0;
memset(f,-1,sizeof(f));
continue;
}
scanf("%d",&y);
int fa1=find(x),fa2=find(y);
if(fa1==fa2) ans++;
else f[fa1]=fa2;
}
return 0;
}
相关文章推荐
- LA - 3644 - X-Plosives
- LA 3644(p191)----X-Plosives
- LA 3644 X-Plosives [并查集]
- LA - 3644 - X-Plosives
- [LA] 3644 - X-Plosives [并查集]
- LA 3644 X-Plosives && LA 3027 Corporative Network (并查集入门)
- 并查集(图论) LA 3644 X-Plosives
- LA 3644 X-Plosives
- LA 3644 X-Plosives (并查集)
- LA 3644 X-Plosives
- LA 3644 X-Plosives
- LA -3644 X-Plosives -并查集
- (DS 《算法竞赛入门经典》)LA 3644 X-Plosives(并查集)
- LA 3644 - X-Plosives
- X-Plosives问题, LA 3644, 并查集算法
- LA 3644 - X-Plosives,并查集
- LA 3644 X-Plosives (Europe - Southwestern - 2006/2007)
- LA 3644 X-Plosives 易爆物
- LA 3644 X-Plosives (Europe - Southwestern - 2006/2007)
- LA 3644 - X-Plosives ( 也即UVA 1160)