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

题目地址: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 }

原文地址:https://www.cnblogs.com/xunzf0402/p/11579874.html