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