Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
51587 xhx_the_juruo 最优子图 C++ 解答错误 0 448 MS 66752 KB 842 2022-07-13 11:54:27

Tests(0/20):


#include<iostream> #include<cstdio> #define ll long long using namespace std; int n,k; int pc[1<<24]; int w[505][505]; ll ans; ll calc(int s){ int a[13],ca=0,b[13],cb=0; ll res=0; for(int i=1;i<=(2*n);i+=1){ if(s>>(i-1)&1){ if(i<=n) a[++ca]=i; else b[++cb]=i-n; } } for(int i=1;i<=ca;i+=1){ for(int j=1;j<i;j+=1){ res+=w[a[i]][a[j]]; } } for(int i=1;i<=cb;i+=1){ for(int j=1;j<i;j+=1){ res+=w[b[i]][b[j]]; } } for(int i=1;i<=ca;i+=1){ for(int j=1;j<=cb;j+=1){ res+=(k-w[a[i]][b[j]]); } } return res; } int main(){ scanf("%d%d",&n,&k); for(int i=1;i<=n;i+=1){ for(int j=1;j<=n;j+=1){ scanf("%d",&w[i][j]); } } for(int i=1;i<(1<<(2*n));i+=1){ pc[i]=pc[i>>1]+(i&1); if(pc[i]==n) ans=max(ans,calc(i)); } printf("%lld\n",ans); return 0; }


测评信息: