P2871 手链
Posted lcez56jsy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P2871 手链相关的知识,希望对你有一定的参考价值。
这个题的数据限制没有翻译出来,所以有可能产生爆内存现象
再此翻译一下:1<=n(物品个数)<=3402,1<=M(总重量)<=12880 (就这两个有点用)
显然这是一个0,1背包题
公式一般的代码如下:
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; int n,m,c[5001],w[5000],f[500000];//f数组要开大点,不然会RE,以及c数组,w数组不要太大,不然会爆内存 int main() {cin>>n>>m; for(int i=1;i<=n;i++) cin>>c[i]>>w[i]; for(int i=1;i<=n;i++) { for(int j=m;j>=c[i];j--)//这里是0,1背包的循环方式,
完全背包只需要改成 j=c[i];j<=m;j++即可 {f[j]=max(f[j],f[j-c[i]]+w[i]); } } cout<<f[m]; }
以上是关于P2871 手链的主要内容,如果未能解决你的问题,请参考以下文章
P2871 [USACO07DEC]手链Charm Bracelet
P2871 [USACO07DEC]手链Charm Bracelet
锣鼓P2871 [USACO07DEC]手链Charm Bracelet
洛谷——P2871 [USACO07DEC]手链Charm Bracelet