求助 2ac

P1048 [NOIP2005 普及组] 采药

@[Wen_SuHuai](/user/687213)
by Huan_Lin @ 2022-05-17 16:44:44


```cpp if(i = M) return 0; ``` ?
by _Remake_ @ 2022-05-17 16:52:51


@[_Remake_](/user/576702) 选完了不是要return 0 么
by Huan_Lin @ 2022-05-17 17:05:32


@[林勋铭](/user/513771) 关键不是return 0,而是应该是==
by KevinTan @ 2022-05-17 17:09:31


我想你还是老老实实写传统DP吧,少搞什么乱七八糟的魔改。 ``` for(int i=1;i<=m;i++){ for(int j=t;j>=v[i];j--){ dp[j]=max(dp[j],dp[j-v[i]]+w[i]); } } ``` 我代码(DP部分)
by BugGod @ 2022-05-17 17:12:41


@[KevinTan](/user/163718) 改了 还是错啊
by Huan_Lin @ 2022-05-17 17:14:44


@[luoyida](/user/541254) 这是递归dp 我同学想了解一下递归怎么写,再根据递归携程递推
by Huan_Lin @ 2022-05-17 17:15:30


@[luoyida](/user/541254) 哥你这数组压缩我同学看不懂啊(
by Huan_Lin @ 2022-05-24 11:41:02


``` #include<bits/stdc++.h> using namespace std; int t,m,dp[1010],v[105],w[105]; int main() { cin>>t>>m; for(int i=1;i<=m;i++){ cin>>v[i]>>w[i]; } for(int i=1;i<=m;i++){ for(int j=t;j>=v[i];j--){ dp[j]=max(dp[j],dp[j-v[i]]+w[i]); } } cout<<dp[t]; return 0; } ``` 这下还能看懂吗?
by BugGod @ 2022-05-24 16:58:20


普通01啊,结合一下输入数据不就行了
by BugGod @ 2022-05-24 16:59:06


| 下一页