hdu1856: 题意:输入n对朋友,求最多的朋友集合(直接或间接为朋友)解法:并查集:集合的合并及查询。code:
#include#include #include const int maxn=10000002;int fa[maxn],ans[maxn];int find(int x) //路径压缩,复杂度为常数{ int fx=fa[x]; if(x!=fx)fa[x]=find(fx); return fa[x];}int main(){ int n,a,b,x,y; while(scanf("%d",&n)!=EOF) { for(int i=0;i max) max=ans[i]; } } printf("%d\n",max); }}/*input:41 23 45 61 641 23 45 67 8output:42*/