BZOJ 3632 外太空旅行

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;
}