Codeforces Round #588 (Div. 2) C - Anadi and Domino

你说的曾经没有我的故事 提交于 2019-11-30 10:49:29

题目地址:https://codeforces.com/contest/1230/problem/C

题意:无向图,最多七个点,放骨牌,每个骨牌有两个点,a和b,如图所示

放置的牌对应的的每个节点的牌点数要相同,例如

思路:六个点一定能放下,输出m即可,7个点时,有一个点重复用了,枚举重复用的点,找到重复边最少的即可。

AC代码:

 

 1 #include <iostream>
 2 using namespace std;
 3 int main(){
 4     int n,m;
 5     cin>>n>>m;
 6     int a[8][8]={0};
 7     int x,y;
 8     for(int i=1;i<=m;i++){
 9         cin>>x>>y;
10         a[x][y]=a[y][x]=1;
11     }
12     if(n<7) cout<<m;
13     else{
14         int ans=22;
15         for(int i=1;i<=7;i++)
16         for(int j=1;j<=7;j++){
17             int num=0;
18             for(int k=1;k<=7;k++)
19                 if(a[i][k]&&a[j][k]) num++;
20             ans=min(ans,num);
21         }
22         cout<<m-ans<<endl;
23     }
24     return 0;
25 }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!