7 条题解
-
1
#include<bits/stdc++.h> using namespace std; const int N=25; int c[N],n,w,a[N],res=N; void dfs(int i,int j){ if(i>n){ res=min(res,j); } if(j>=res)return; for(int k=1;k<=j;k++){ if(a[k]+c[i]>w)continue; a[k]+=c[i]; dfs(i+1,j); a[k]-=c[i]; } a[j+1]+=c[i]; dfs(i+1,j+1); a[j+1]-=c[i]; } int main(){ cin>>n>>w; for(int i=1;i<=n;i++){ cin>>c[i]; } dfs(1,0); cout<<res; return 0; }
信息
- ID
- 76
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 548
- 已通过
- 146
- 上传者