您的位置:首页 > 其它

HDU1856

2016-07-22 09:25 316 查看
数据超弱并查集

只要十万就能过

#include<iostream>
#include<cstdlib>
#include<memory.h>
#include<map>
using namespace std;
int dian[100001];
int book[100001];
int gen(int v)
{
int t1,t2=v;
while(v!=dian[v])
v=dian[v];
while(t2!=dian[t2])
{
t1=dian[t2];
dian[t2]=v;
t2=t1;
}
return v;
}
void hebing (int a,int b)
{
int a1=gen(a);
int b1=(gen(b));
dian[a1]=b1;
}
int main()
{
int n;
while(cin>>n)
{
memset(book,0,sizeof(book));
for(int a=1;a<=100000;a++)dian[a]=a;
while(n--)
{
int a,b;
cin>>a>>b;
hebing(a,b);
}
int mex=0;
for(int a=1;a<=100000;a++)
{
int u=gen(a);
book[u]++;
if(mex<book[u])mex=book[u];
}
cout<<mex<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: