TYVJ 4869 罪犯分组 || 清北学堂金秋杯大奖赛

来源:互联网 发布:微软数据库软件有哪些 编辑:程序博客网 时间:2024/05/29 18:33

题目描述:

这里写图片描述

//状压DP 看题解 考场瞎搞10分#include<iostream>#include<cstring>#include<cstdio>using namespace std;#define MAXN 66000int bit[17],n,m,k,f[MAXN];bool b[17][17];int main(){    scanf("%d%d%d",&n,&m,&k);    memset(b,0,sizeof b );    for(int x,y,i=1;i<=m;++i){        scanf("%d%d",&x,&y);--x,--y;        b[x][y]=b[y][x]=1;    }    memset(f,127/3,sizeof f );    for(int i=0;i<(1<<n);++i){        int s=0;        for(int j=0;j<n;++j)            for(int k=0;k<n;++k)                if(i&(1<<j)&&(i&(1<<k)))                    if(b[j][k]) ++s;        s/=2;        if(s<=k) f[i]=1;        for(int j=i;j;j=(j-1)&i)            f[i]=min(f[i],f[j]+f[i^j]);    }    printf("%d\n",f[(1<<n)-1]);    return 0;}
原创粉丝点击