样例输出7300求调

P1064 [NOIP2006 提高组] 金明的预算方案

@[bcbgszyzh](/user/726902) 马上去上学了,来不及了,我把我代码发给你,你慢慢看: ```cpp #include <bits/stdc++.h> using namespace std; int v[100][10],p[100][10],dp[50000],n,m; int main() { cin>>n>>m; int vi,pi,qi; for(int i=1;i<=m;i++){ cin>>vi>>pi>>qi; if(qi==0){ v[i][0]=vi; p[i][0]=vi*pi; }else{ if(p[qi][1]==0){ v[qi][1]=vi; p[qi][1]=vi*pi; }else{ v[qi][2]=vi; p[qi][2]=vi*pi; } } } for(int i=1;i<=m;i++){ for(int j=n;j>=v[i][0];j--){ dp[j]=max(dp[j],dp[j-v[i][0]]+p[i][0]); if(j>=v[i][0]+v[i][1]) dp[j]=max(dp[j],dp[j-v[i][0]-v[i][1]]+p[i][0]+p[i][1]); if(j>=v[i][0]+v[i][2]) dp[j]=max(dp[j],dp[j-v[i][0]-v[i][2]]+p[i][0]+p[i][2]); if(j>=v[i][0]+v[i][1]+v[i][2]) dp[j]=max(dp[j],dp[j-v[i][0]-v[i][1]-v[i][2]]+p[i][0]+p[i][1]+p[i][2]); } } cout<<dp[n]; return 0; } ``` 我用的是背包,但我没用结构体,凑合着看吧
by __Rickysun__ @ 2024-03-11 07:13:45


@[Rickysun](/user/824205) 码风清奇(我)
by __Rickysun__ @ 2024-03-11 07:14:09


怎么修改? 如:请回答: ![](data:image/png;base64,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)
by bcbgszyzh @ 2024-03-11 17:57:42


@[Rickysun](/user/824205)
by bcbgszyzh @ 2024-03-11 17:58:18


```cpp if(j>=a[i][j].w){ ``` 改为 ```cpp if(j>=a[i][k].w){ ``` 试一下
by qishifeng0001 @ 2024-03-14 21:18:25


@[qishifeng0001](/user/938792) hack 数据
by bcbgszyzh @ 2024-03-14 21:22:33


@[bcbgszyzh](/user/726902) 附件可能在主件前出现
by qishifeng0001 @ 2024-03-14 21:23:17


![1710422971435.png](https://img2.imgtp.com/2024/03/14/LXVQyZgE.png)
by qishifeng0001 @ 2024-03-14 21:29:55


给下修改后的程序哈: ```cpp #include<bits/stdc++.h> typedef long long ll; using namespace std; struct node{ ll w,v,num; }a[2000][10]; ll b[2000],f[40010]; int xi[66],yi[66],zi[66]; int main(){ //freopen("pob nyiaj siv.in","r",stdin); //freopen("pob nyiaj siv.out","w",stdout); ll w,n; cin>>w>>n; ll tot=0; for(int i=1;i<=n;++i){ cin>>xi[i]>>yi[i]>>zi[i]; } for(int i=1;i<=n;++i){ int x=xi[i],y=yi[i]; if(!zi[i]){ a[i][0].num++; a[i][1].w=x; a[i][1].v=x*y; } } for(int i=1;i<=n;++i){ int x=xi[i],y=yi[i]; if(zi[i]){ ll t=zi[i]; a[t][0].num++; a[t][a[t][0].num].w=x+a[t][1].w; a[t][a[t][0].num].v=x*y+a[t][1].v; if(a[t][0].num==3){ a[t][0].num++; a[t][4].w=a[t][2].w+a[t][3].w-a[t][1].w; a[t][4].v=a[t][2].v+a[t][3].v-a[t][1].v; } } } for(int i=1;i<=n;++i){ for(int j=w;j>=0;--j){ for(int k=1;k<=a[i][0].num;++k){ if(j>=a[i][k].w){ f[j]=max(f[j],f[j-a[i][k].w]+a[i][k].v); } } } } printf("%lld",f[w]); return 0; } ```
by qishifeng0001 @ 2024-03-15 20:30:37


![](https://cdn.luogu.com.cn/upload/image_hosting/px5fpm5o.png)
by bcbgszyzh @ 2024-03-15 20:31:06


| 下一页