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

luogu P2871 [USACO07DEC]手链Charm Bracelet

洛谷 P2871 [USACO07DEC]手链Charm Bracelet 题解