完全背包問題

我們可以將數組內每個元素看成一個物品,這樣問題就轉化成:

現有n個物品,每個物品可以取a[i]~b[i]個,價值為d[i],費用為c[i],問怎麼樣取讓費用為0且價值最大

我們可以先每種物品取a[i]個,這樣每個物品變成了可取0~b[i]-a[i]個

記之前c總和為va,則現在我們要取-va才能使總和為0

多重背包即可,要加二進制優化

#include<bits/stdc++.h>
using namespace std;
#define N 2000010
int a[N],b[N],c[N],d[N],n,ans,p[N],va,ct,f[N],v[N];
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d%d%d%d",&a[i],&b[i],&c[i],&d[i]);
		ans+=a[i]*d[i];
		va+=a[i]*c[i];
		int rrr=b[i]-a[i];
		for(int j=1;j<=rrr;j*=2){
			rrr-=j;
			p[++ct]=c[i]*j;
			v[ct]=d[i]*j;
		}
		if(rrr)p[++ct]=(rrr)*c[i];
		if(rrr)v[ct]=(rrr)*d[i];
	}
	va=-va;
	memset(f,-63,sizeof(f));
	f[0]=0;
	for(int i=1;i<=ct;i++)
		for(int j=va;j>=p[i];j--)
			f[j]=max(f[j],f[j-p[i]]+v[i]);
	printf("%d",ans+f[va]);
}

jzoj100044的更多相关文章

随机推荐

  1. 用python做数值计算

    http://sebug.net/paper/books/scipydoc/scipy_intro.html http://www.cnblogs.com/weilq/p/3432817.html h ...

  2. linux下的xampp安装

    最近因为要部署一个php的公众号应用到一台linux的测试服务器,在考虑是用xampp这样的集成环境还是自己配置.故两个都安装配置下. 最后经过研究查阅相关资料后,总结: 因为xampp本身很开放,几 ...

  3. cocos2d接安卓facebook插件(已测cocos-x 3.7 3.8版本)

    1  控制台创建新工程: a 控制台 进入cocos2d文件夹下面,如cocos2d-x-3.7.1,执行setup.py,未设置NDK SDK ANT 路径的设置路径,需要改路径的 explore ...

  4. Picard Tools

    Picard Tools - By Broad Institute http://broadinstitute.github.io/picard/command-line-overview.html ...

  5. 二叉树的遍历——Morris

    在之前的博客中,博主讨论过二叉树的经典遍历算法,包括递归和常规非递归算法,其时间复杂度和空间复杂度均为O(n).Morris算法巧妙地利用了二叉树的线索化思路,将二叉树的遍历算法的空间复杂度降低为O( ...

  6. 流程控制 if while for 已及数字类型 进制转换

    一:if 语句 语法一:ifif 条件: code1 code1 code1 语法二:if ...else ... if 条件: code1 code1 code1else: code1 code1 ...

  7. MFC框架仿真<三>R T T I

    RTTI,简单的说,就是判定A类是否为B类的基类.将书本的内容最大程度的简化,如下图的类层次,现在解决的问题就是:判定“梨”是否是“红富士”的基类.

  8. WriteableBitmap(二) 实例

    使用前面定义的WriteableBitmap,我们可以很容易地创建一个足够容纳整个100 x 100图像的数组: byte[] pixels = new byte[wbmap.PixelHeight* ...

  9. (KMP)剪花布条 -- hdu -- 2087

    http://acm.hdu.edu.cn/showproblem.php?pid=2087 剪花布条 Time Limit: 1000/1000 MS (Java/Others)    Memory ...

  10. CG图形学的工具

    1. http://give.zju.edu.cn/cgcourse/new/frame/index.html 网页CG学习