二维写的为什么不能过?QwQ

P1060 [NOIP2006 普及组] 开心的金明

[QWQ](https://www.luogu.com.cn/problem/solution/P1060)
by _hhT @ 2024-04-25 22:00:17


也许你的数组开小了。。。
by Fractured_Angel @ 2024-04-25 22:07:02


@[lucy2012](/user/1252442) $n<30000,m<25$
by oier04 @ 2024-04-26 14:23:05


@[lucy2012](/user/1252442) 数组这么开就行了: ```cpp dp[25][30000],w[25],v[25] ```
by oier04 @ 2024-04-26 14:24:11


``` #include<bits/stdc++.h> using namespace std; int w[30],v[30],dp[500000]; int n,m; int main(){ cin>>m>>n; for(int i=1;i<=n;i++){ cin>>v[i]>>w[i]; w[i]*=v[i]; } for(int i=1;i<=n;i++){ for(int j=m;j>=v[i];j--){ if(j>=v[i]){ dp[j]=max(dp[j],dp[j-v[i]]+w[i]); } } } cout<<dp[m]; return 0; } ```
by messi_fanzzc @ 2024-05-18 15:34:17


|