1210A - Anadi and Domino(思维,图)

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

\(突破口是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;
	}
}

猜你喜欢

转载自www.cnblogs.com/iss-ue/p/12955284.html