1210A

传送门吵闹的卡轨服务哈尔克积分

(突破口是n<=7,注意到这个你就成功了一半)

(当n<=6,每个点上放一个不同数字)

(这样一个点最多往外连5条边,而不管以什么数字开头,都有6种这样的筛子)

(比如11,12,13,14,15,16)

(这种情况m条边都可以放上筛子)

(当n==7,那么第七个点数字必然和前面某一个点相同)

(当两个相同数字的点连向同一个点时,有一条边是放不了的)

(比如两个点数字都是2,都和数字3的点相连,那么这两条边都只能放23)

(所以我们枚举相同的两个点计算最大答案)

#include <bits/stdc++.h>
using namespace std;
int n,m,ans,dp[8][8];
int main()
{
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int l,r;
		cin>>l>>r;
		dp[l][r]=dp[r][l]=1;
	}
	if(n<=6)	cout<<m;
	else
	{
		for(int i=1;i<=n;i++)
		for(int j=i+1;j<=n;j++)
		{
			int res=0;
			for(int k=1;k<=n;k++)
			if(dp[i][k]&&dp[j][k])	res++;
			ans=max(ans,m-res);
		}
		cout<<ans;
	}
}
原文地址:https://www.cnblogs.com/iss-ue/p/12955284.html