这样写不行吗?

P1049 [NOIP2001 普及组] 装箱问题

可以吧
by lzh009 @ 2024-04-30 16:51:18


@[lucy2012](/user/1252442) 但是有更好的做法(状压dp): ```cpp #include <bits/stdc++.h> using namespace std; int V,n; bitset<20001> st; int main () { st[0]=1; cin>>V>>n; for (int i=1;i<=n;i++) { int x; cin>>x; st|=(st<<x); } for (int i=V;i>=0;i--) if (st[i]) cout<<V-i,exit (0); return 0; } ``` 实测AC。
by hhhcj @ 2024-04-30 16:51:35


哦,i和j得从0开始遍历 @[lucy2012](/user/1252442)
by lzh009 @ 2024-04-30 16:52:16


@[lucy2012](/user/1252442) 我橙了
by hhhcj @ 2024-04-30 16:52:19


@[lzh009](/user/952814) i不用
by hhhcj @ 2024-04-30 16:53:17


@[lzh009](/user/952814) 只会增加时间
by hhhcj @ 2024-04-30 16:53:40


这样: ```c #include <bits/stdc++.h> using namespace std; int V,n,a[34],dp[34][20004]; int main(){ cin>>V>>n; for(int i=1;i<=n;i++){ cin>>a[i]; for(int j=0;j<=V;j++){ if(a[i]>j) dp[i][j]=dp[i-1][j]; else dp[i][j]=max(dp[i-1][j],dp[i-1][j-a[i]]+a[i]); } } cout<<V-dp[n][V]<<endl; return 0; } ``` @[lucy2012](/user/1252442)
by lzh009 @ 2024-04-30 16:54:14


@[hhhcj](/user/1021663) 但是我从1开始遍历WA了(寄)
by lzh009 @ 2024-04-30 16:54:56


@[lzh009](/user/952814) 啊~~~~~~~~~~~~~·
by hhhcj @ 2024-04-30 16:56:21


@[lzh009](/user/952814) 我说的是 $i$!!!!!
by hhhcj @ 2024-04-30 16:57:13


| 下一页