6 条题解
-
0
```cpp #include<bits/stdc++.h> using namespace std; int n,w; int cat[20],cab[20],ans=20; void dfs(int u,int k) { // if(u==n){//判定所有小猫都上车了 // ans=min(ans,k);//找最小的次数 // return; // } if(k>ans)return ; if(u==n){ ans=k; return; } for(int i=0;i<k;i++){ if(cab[i]+cat[u]<=w){ cab[i]+=cat[u]; dfs(u+1,k); cab[i]-=cat[u]; } } cab[k]=cat[u]; dfs(u+1,k+1); cab[k]-=cat[u]; } int main(){ cin>>n>>w; for(int i=0;i<n;i++)cin>>cat[i]; sort(cat,n+cat,greater<int>()); dfs(0,0); cout<<ans; return 0; }
信息
- ID
- 76
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 505
- 已通过
- 133
- 上传者