社区讨论
诸位硕佬们帮帮忙!60分求解
P1064[NOIP 2006 提高组] 金明的预算方案参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mi6ome23
- 此快照首次捕获于
- 2025/11/20 08:17 4 个月前
- 此快照最后确认于
- 2025/11/20 08:17 4 个月前
CPP
```cpp
#include
#include
using namespace std;
int w[200005][4],v[200005][4];
int an=0;
int m,n;
int dp[200005];
int main(){
memset(w,0,sizeof(w));
memset(v,0,sizeof(v));
memset(dp,0,sizeof(dp));
cin>>n>>m;
int i,j,k,l;
int v0,p,q;
for(i=1;i<=m;i++){
cin>>v0>>p>>q;
if(q==0){
an++;
w[an][1]=v0;
v[an][1]=v0p;
}
else{
w[q][0]++;
w[q][w[q][0]+1]=v0;
v[q][0]++;
v[q][v[q][0]+1]=v0p;
}
}
dp[0]=0;
int k1,k2,k3,k4,k5;
for(i=1;i<=an;i++){
for(j=n;j>=w[i][1];j--){
k3=0;k4=0;k5=0;
k1=dp[j];
k2=dp[j-w[i][1]]+v[i][1];
CPP if(j>=w[i][1]+w[i][2])
k3=dp[j-w[i][1]-w[i][2]] +v[i][1]+v[i][2];
if(j>=w[i][1]+w[i][3])
k4=dp[j-w[i][1]-w[i][3]] +v[i][1]+v[i][3];
if(j>=w[i][1]+w[i][2]+w[i][3])
k5=dp[j-w[i][1]-w[i][2]-w[i][3]] +v[i][1]+v[i][2]+v[i][3];
dp[j]=max(k1,max(k2,max(k3,max(k4,k5))));
}
}
cout<<dp[n];
return 0;
}
CPP回复
共 3 条回复,欢迎继续交流。
正在加载回复...