Codeforces Round #588 (Div. 2)(思维,暴力)

#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
int a[27],b[27];
int vis[9][9];
int dis[9];
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n,m;
cin>>n>>m;
for(int i=1;i<=m;++i)
cin>>a[i]>>b[i];
if(!m)//点数不为7时,可以建立一张完全图
cout<<0;
else if(n<7)//点数不为7时,可以建立一张完全图
cout<<m;
else{//对于点数为7的情况,可以两个点共用一种点数的牌,所以导致不能猜结论
int ans=0;
for(dis[1]=1;dis[1]<=6;++dis[1])
for(dis[2]=1;dis[2]<=6;++dis[2])
for(dis[3]=1;dis[3]<=6;++dis[3])
for(dis[4]=1;dis[4]<=6;++dis[4])
for(dis[5]=1;dis[5]<=6;++dis[5])
for(dis[6]=1;dis[6]<=6;++dis[6])
for(dis[7]=1;dis[7]<=6;++dis[7]){
memset(vis,0,sizeof(vis));
int cnt=0;
for(int k=1;k<=m;++k){
if(!vis[dis[a[k]]][dis[b[k]]]){//直接暴力,把所有边上能放牌就放牌,记录各种不同的情况
vis[dis[a[k]]][dis[b[k]]]=1;
vis[dis[b[k]]][dis[a[k]]]=1;
++cnt;//记录牌的数量
}
}
ans=max(cnt,ans);//取所能放牌的最大值
}
cout<<ans;
}
return 0;
}

猜你喜欢

转载自www.cnblogs.com/ldudxy/p/11582088.html