社区讨论
求助1,2WA
P1049[NOIP 2001 普及组] 装箱问题参与者 4已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mi7dufws
- 此快照首次捕获于
- 2025/11/20 20:03 4 个月前
- 此快照最后确认于
- 2025/11/20 20:03 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int a[35];
int v,n;
int ans;
//bool flag[35];
void dfs(int step,int no_v,int yn) {
if(no_v<0)return ;
if(step==n) {ans=min(ans,no_v);return ;}
// flag[step+1]=1;
dfs(step+1,no_v-a[step]*yn,1);
// flag[step+1]=0;
dfs(step+1,no_v-a[step]*yn,0);
}
int main() {
cin>>v>>n;
ans=v;
for(int i=1; i<=n; i++)cin>>a[i];
dfs(0,v,0);
cout<<ans;
}
dfs选和不选两种情况,没用记忆化。
回复
共 5 条回复,欢迎继续交流。
正在加载回复...