DBQ 我丢人
#include<bits/stdc++.h>
using namespace std;
int mp[10][10];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
int x,y;scanf("%d%d",&x,&y);
mp[x][y]=mp[y][x]=1;
}
if(n<=6)//对于节点数小于6 的情况,易得满足所有边
{
printf("%d\n",m);
}else //存在重点
{
int t=1000;
for(int i=1;i<7;i++)
{
for(int j=i+1;j<=7;j++)//若i和j代表的数字相同
{
int c=0;
for(int k=1;k<=7;k++)
//若i-k相连 , j-k相连
// k的序号是确定的
//由于i和j代表的数字相同那么骨牌肯定不可能满足i-k 以及j-k两条边
// 所以一定要删除一条同边
// 所以想法大概就是确定两个代表相同数字的点 找到其中重边最少的情况
//m-最少的重边就是答案啦
{
if(mp[i][k]&&mp[j][k])
{
c++;
}
}
t=min(c,t);
}
}
printf("%d\n",m-t);
}
}
吐槽
- 为什么第一眼看错了数据
- 第二眼联想拓扑诶QAQ