Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
52331 野兽先辈——田所浩二 子网 C++ 运行出错 20 15 MS 18276 KB 729 2022-07-19 11:53:25

Tests(4/20):


#include<cstdio> #include<iostream> using namespace std; const int N=8005,M=4405; int n,m,k[M],c[N][M],ans; int dp[M][1<<15]; int main() { scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { scanf("%d",&k[i]); for(int j=1;j<=k[i];j++) scanf("%d",&c[i][j]),c[i][j]--; } for(int i=1;i<=m;i++) for(int s=0;s<(1<<n);s++) { dp[i][s]=max(dp[i][s],dp[i-1][s]); for(int j=1;j<=k[i];j++) { if(s&(1<<c[i][j])) continue; for(int l=j+1;l<=k[i];l++) { if(s&(1<<c[i][l])) continue; dp[i][s|(1<<c[i][j])|(1<<c[i][l])]=max(dp[i][s|(1<<c[i][j])|(1<<c[i][l])],dp[i-1][s]+1); } } } for(int i=0;i<(1<<n);i++) ans=max(ans,dp[m][i]); printf("%d",ans); return 0; }


测评信息: