BZOJ 3632 外太空旅行
2017.09.12
2017.09.12
求最大团。
随机化艹过。
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int n,inx,iny,c[51],cnt,ans;
bool use[51],mp[51][51];
int main()
{
scanf("%d",&n);
while(scanf("%d%d",&inx,&iny)!=EOF) mp[inx][iny]=mp[iny][inx]=true;
for(int i=1;i<=n;++i) c[i]=i;
for(int rt=1;rt<=1000;++rt)
{
random_shuffle(c+1,c+n+1);
cnt=0;
memset(use,false,sizeof use);
for(int i=1;i<=n;++i)
if(!use[c[i]])
{
++cnt;
use[c[i]]=true;
for(int j=1;j<=n;++j) if(!mp[c[i]][j]) use[j]=true;
}
ans=max(ans,cnt);
}
printf("%d\n",ans);
return 0;
}