poj之旅——2236,1703
来源:互联网 发布:木马网络行为分析 编辑:程序博客网 时间:2024/06/10 17:00
题目描述:有N台电脑坏了,它们原本组成这样一个局域网:距离d内的两台电脑互联。现在通过修理和查看操作,求查看时两台电脑是否互联
题目描述:有N名来自两个帮派的坏蛋,已知一些坏蛋两两不属于同一帮派,求判断给定两个坏蛋是否属于同一帮派
题解:并查集的基本应用,直接看程序。
参考程序:
2236:
#include<cstdio>#include<cmath>#include<algorithm>#include<iostream>using namespace std;int f[2000];int x[2000],y[2000];int n,d;bool have[2000];int find(int x){if (f[x] != x)f[x]=find(f[x]);return f[x];}void unite(int x,int y){x=find(x);y=find(y);if (x != y) f[y]=x;}bool same(int x,int y){x=find(x);y=find(y);return x==y;}int sqr(int x){return x*x;}int main(){scanf("%d %d",&n,&d);for (int i=0;i<n;i++)scanf("%d %d",&x[i],&y[i]);char now;for (int i=0;i<n;i++)f[i]=i;while (cin>>now){if (now=='O'){int id;cin>>id;id--;have[id]=true;for (int i=0;i<n;i++)if (i != id) if (have[i] && sqr(x[i]-x[id])+sqr(y[i]-y[id])<=d*d)unite(i,id);}else{int id1,id2;cin>>id1>>id2;id1--;id2--;if (same(id1,id2))printf("SUCCESS\n");else printf("FAIL\n");}}return 0;}
1703:
#include<cstdio>#include<algorithm>#include<cstring>#define maxn 1000000using namespace std;int op[maxn];int f[maxn];int find(int x){return f[x]=f[x]==x?x:find(f[x]);}void unite(int x,int y){int a=find(x),b=find(y);f[b]=a;}int main(){int T;scanf("%d",&T);getchar();while (T--){int n,m;scanf("%d %d",&n,&m);for (int i=1;i<=n;i++)f[i]=i;memset(op,0,sizeof(op));for (int i=0;i<m;i++){int x,y;char cmd=getchar();scanf("%c %d %d",&cmd,&x,&y);//经检验可用scanf("\n%c%d%d",&cmd,&x,&y);无需getcharif (cmd=='D'){if (op[x]+op[y]==0){op[x]=y;op[y]=x;}else{if (op[x]==0)op[x]=y;if (op[y]==0)op[y]=x;unite(op[x],y);unite(op[y],x);}}else if (n==2)printf("In different gangs.");else{int a=find(x),b=find(y),c=find(op[x]);if (a==b)printf("In the same gang.");else if (b==c)printf("In different gangs.");else printf("Not sure yet.");printf("\n");}}}return 0;}
0 0
- poj之旅——2236,1703
- poj之旅——3258
- poj之旅——3273
- poj之旅——3104
- poj之旅——3045
- poj之旅——2976
- poj之旅——3111。
- poj之旅——3579
- poj之旅——1979
- poj之旅——3009
- poj之旅——3669
- poj之旅——2718
- poj之旅——3187
- poj之旅——3050
- poj之旅——2376
- poj之旅——1328
- poj之旅——3190
- poj之旅——2393
- sybase存储过程,插入百万数据
- myeclipse,eclipse,java项目中如何隐藏文件夹,如何显示文件夹
- Google浏览器Chrome安装失败,错误代码0xa0430721解决办法
- Android studio常见操作
- 一般函数指针和类的成员函数指针
- poj之旅——2236,1703
- 构件图和部署图--trufun UML2推荐
- Dialog对话框
- Android6.0 Telephony流程分析——PhoneApp启动主要类关系分析
- C++第14周项目模板【项目2-两个成员的类模板】 !!!!!!!
- Alamofire分析
- const详解
- u盘启动安装Ubuntu,安装报错vesamenu.c32:not a COM32R image解决
- Windows 7硬盘安装Ubuntu系统