cf 1230 c

https://codeforces.com/contest/1230/problem/C
在这里插入图片描述
在这里插入图片描述
共21个骰子,给一个无向图,n<=7个点,m<=n(n-1)/2条边,骰子放在边上,每个骰子对应的点的点数要一样。

#include <stdio.h>
int map[10][10];
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    if(n<=6)              //n<=6 则每个点各代表1 2 3 4 5 6,无论怎么连都行 
    {
        printf("%d",m);
        return 0;
    }
    int u,v,ans=1e9;
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d",&u,&v);
        map[u][v]=map[v][u]=1;
    }
    for(int i=1;i<=7;i++)   //枚举起点 
    {
        for(int j=i+1;j<=7;j++) //枚举终点 
        {
            int cnt=0;
            for(int k=1;k<=7;k++)
                if(map[i][k]&&map[j][k])cnt++;   //起点和终点共同相连的点 
            if(ans>cnt)ans=cnt;                  //因为把两个点看出同一个数字 
        }                                        //则和他们相连的点,就会失去一半不能用 
    }
    printf("%d",m-ans);
}
发布了88 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44879687/article/details/103466015