1 条题解

  • 0
    @ 2024-12-24 9:49:24

    C++ :

    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<iostream>
    using namespace std;
    int mapp[17][17];
    int main()
    {
        int t;
        scanf("%d",&t);
        int n,m;
        while(t--)
        {
            scanf("%d%d",&n,&m);
            if(n==0)
            {
                printf("0\n");
                continue;
            }
            int u,v;
            for(int i=0;i<m;i++)
            {
                for(int j=0;j<n;j++)
                mapp[i][j]=0;
            }
            for(int i=0;i<m;i++)
            {
                scanf("%d%d",&u,&v);
                if(u>v) swap(u,v);
                mapp[u][v]++;
            }
            int maxx=1<<n;
            int res=0x7fffffff;
            int flag[20];
            for(int i=0;i<maxx;i++)
            {
                memset(flag,0,sizeof(flag));
                for(int j=0;j<n;j++)
                {
                    if(i&(1<<j))
                    flag[j]=1;
    
                }
                int tmp=0;
                for(int j=0;j<n;j++)
                {
                    for(int k=j+1;k<n;k++)
                    {
                        if(flag[k]==flag[j])
                        tmp+=mapp[j][k];
                    }
                }
                res=min(res,tmp);
            }
            printf("%d\n",res);
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    892
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者