UVA 10608 dfs或者并查集
2013-10-22 21:02
183 查看
题意:A和B是朋友,B和C是朋友,那么A和C是朋友,输入一些朋友关系,输出最大人数的朋友圈。
1.直接深搜一遍
[b]2.并查集 经典题目
1.直接深搜一遍
#include<cstdio> #include<vector> #include<cstring> #define MAXN 30000+10 using namespace std; bool vis[MAXN]; vector<int>st[MAXN]; int n,m,ans,maxx; void dfs(int cur) { if(vis[cur]) return ; vis[cur]=true; ans++; for(int i=0; i<(int)st[cur].size(); i++) { int a=st[cur][i]; if(!vis[a]) dfs(a); } return ; } int main() { // freopen("in.txt","r",stdin); int cas; scanf("%d",&cas); while(cas--) { scanf("%d%d",&n,&m); memset(vis,false,sizeof(vis)); for(int i=0; i<=n; i++) st[i].clear(); for(int i=0; i<m; i++) { int a,b; scanf("%d%d",&a,&b); st[a].push_back(b); st.push_back(a); } maxx=0; for(int i=1; i<=n; i++) { if(!vis[i]) { ans=0; dfs(i); maxx=max(ans,maxx); } if(maxx>n/2+1) break; } printf("%d\n",maxx); } return 0; }
[b]2.并查集 经典题目
#include<cstdio> #include<cstring> #include<iostream> #define MAXN 30000+10 using namespace std; int p[MAXN],num[MAXN]; int find(int x) { return x==p[x]?x:p[x]=find(p[x]); } int main() { // freopen("in.txt","r",stdin); int cas,n,m; scanf("%d",&cas); while(cas--) { scanf("%d%d",&n,&m); for(int i=0; i<=n; i++) p[i]=i; for(int i=0; i<m; i++) { int a,b; scanf("%d%d",&a,&b); a=find(a); b=find(b); if(a!=b) p[a]=b; } memset(num,0,sizeof(num)); int maxx=0; for(int i=1; i<=n; i++) { int a=find(i); num[a]++; } for(int i=1; i<=n; i++) maxx=max(num[i],maxx); printf("%d\n",maxx); } return 0; }
相关文章推荐
- floyd闭包或者加一点并查集uva247
- UVALive - 3644 X-Plosives 并查集
- UVA 11354 - Bond(并查集-按秩合并)
- uva 1329 - Corporative Network(数据结构:并查集)
- UVA 11987 Almost Union-Find [并查集]
- UVALive 6091 并查集简单应用
- 蓝桥杯 历届试题 连号区间数 By Assassin 简单暴力或者并查集
- UVALive 3887 (暴力 并查集)
- UVA 1664 Conquer a New Region (并查集+贪心)
- (组队赛E/F Number of Connected Components )UVALive - 7638 (并查集)
- UVA 11987 Almost Union-Find (并查集,可持久化)
- UVA 11987 Almost Union-Find (并查集)
- UVALive 6910 Cutting Tree(离线逆序并查集)
- UVALive 3644 X-Plosives 并查集
- UVALive 6889 City Park 并查集
- UVALive 6187 Never Wait for Weights(并查集)
- UVA 11987 Almost Union-Find(带删除的并查集)
- uva 11987 几乎就是并查集(并查集+一点小技巧)
- uva 11987 带删除操作的并查集与并查集的可持久化
- UVA 1160 - X-Plosives 即LA3644 并查集判断是否存在环