大佬们,救救孩子吧 10分

P2871 [USACO07DEC] Charm Bracelet S

您需要先学会使用MARKDOWN 请使用回复讨论栏中的“插入代码”
by William_Fangs @ 2019-05-15 23:20:55


希望更丰富的展现?[使用Markdown](https://www.luogu.org/wiki/show?name=帮助:markdown)
by GusyNight @ 2019-05-16 09:59:56


希望更丰富的展现?[使用Markdown]()
by huyang2007 @ 2019-05-16 10:02:14


```cpp include<stdio.h> include<iostream> include<algorithm> using namespace std; int w[99999999],v[99999999],f[9999][9999]={0}; int main() { int n,m,i,j,x,y; scanf("%d%d",&n,&m); for(i=1;i<=n;i++) { scanf("%d%d",&w[i],&v[i]); } for(i=1;i<=n;i++) { for(j=1;j<=m;j++) { if(j>=w[i]) { f[i][j]=max(f[i][j],f[i-1][j-w[i]]+v[i]); x=f[i][j]; } else { f[i][j]=f[i-1][j]; x=f[i][j]; } } } cout<<x; } ```
by WaterDorp @ 2019-12-16 21:39:41


@[WaterDorp](/user/228703) 整理代码
by WaterDorp @ 2019-12-16 21:40:30


# 建议直接转一维 # 这个是01背包模板啊! # 二维要超空间的!!! ```cpp #include<bits/stdc++.h> using namespace std; #define int long long int n, m; int dp[10000005]; int w[10000], v[10000]; signed main(){ cin >> n >> m; for(int i = 1; i <= n; i++) cin >> w[i] >> v[i]; for(int i = 1; i <= n; i++) for(int j = m; j >= w[i]; j--) dp[j] = max(dp[j], dp[j-w[i]]+v[i]); cout<<dp[m]<<endl; return 0; } ```
by Candycar @ 2021-07-13 20:02:52


$1 ≤ N ≤ 3,402 $ $1 ≤ Wi ≤ 400$ $1 ≤ Di ≤ 100$ $1 ≤ M ≤ 12,880$
by Candycar @ 2021-07-13 20:04:48


|