luogu_1441 砝码称重
Posted codetogether
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu_1441 砝码称重相关的知识,希望对你有一定的参考价值。
#include <bits/stdc++.h> using namespace std; int n,m,a[30],ans; bool use[30],t[2010]; void dfs(int now,int cnt){ if(now==m){ memset(t,0,sizeof(t)); int sum=0,tot=0; t[0]=1; for(int i=1;i<=n;i++)if(!use[i]){ for(int j=tot;j>=0;j--)if(t[j] && !t[j+a[i]])t[j+a[i]]=1,sum++; tot+=a[i]; } ans=max(ans,sum); return; } for(int i=cnt+1;i<=n;i++)if(!use[i]){ use[i]=1; dfs(now+1,i); use[i]=0; } } int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)scanf("%d",&a[i]); dfs(0,0); printf("%d ",ans); return 0; }
以上是关于luogu_1441 砝码称重的主要内容,如果未能解决你的问题,请参考以下文章