题解:
刚看到题目,还以为是2-sat
可是似乎不对啊。。。
然后就只能爆搜了
看了网上的题解,woc还真是报搜
然后就ac了
当然爆搜还要随机化
代码:
#include<bits/stdc++.h> using namespace std; int x,y,n,b[55],ans,a[55][55],del[55]; void getans() { memset(del,0,sizeof(del)); int t=0; for (int i=1;i<=n;i++) if (!del[i]) { t++; for (int j=i+1;j<=n;j++) if (!a[b[i]][b[j]])del[j]=1; } ans=max(t,ans); } int main() { scanf("%d",&n); while (~scanf("%d%d",&x,&y))a[x][y]=a[y][x]=1; for (int i=1;i<=n;i++)b[i]=i; for (int i=1;i<=10000;i++) { for (int j=1;j<=n;j++)swap(b[j],b[rand()%j+1]); getans(); } printf("%d",ans); return 0; }