1 条题解
-
1
#include<iostream> using namespace std; long long n,c,w[1005],s[1005],ans;//不开long long见祖宗 void dfs(int u,long long t){ ans=max(ans,t); if(u==1) return; if(t+s[u]<ans) return;//前缀和剪枝 if(t+w[u]<=c) dfs(u-1,t+w[u]); dfs(u-1,t); } int main(){ freopen("scales.in","r",stdin); freopen("scales.out","w",stdout); scanf("%d%d",&n,&c); for(int i=1;i<=n;i++){ scanf("%d",&w[i]); s[i]=w[i]+s[i-1];//前缀和 } dfs(n,0); printf("%d",ans); return 0; }
- 1
信息
- ID
- 1617
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 256
- 已通过
- 22
- 上传者