【洛谷P1064】[NOIP2006] 金明的预算方案
金明的预算方案
显然是个背包问题
把每个主件和它对应的附件放在一组,枚举每一组,有以下几种选法:
1.都不选
2.只选主件
3.一个主件+一个附件
4.一个主件+两个附件
于是就成了01背包。。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,f[],v[][],w[][],pos[]; //pos[i]记录编号为i的物品在数组v,w中的下标
//w[i][0]表示第i个主件的附件个数
int main()
{
scanf("%d%d",&n,&m);
int V,P,Q,sum;
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&V,&P,&Q);
if(Q==)
{
v[++sum][]=V;
w[sum][]=P;
pos[i]=sum;
}
else
{
w[pos[Q]][++w[pos[Q]][]+]=P;
v[pos[Q]][w[pos[Q]][]+]=V;
}
}
for(int i=;i<=sum;i++)
for(int j=n;j>=v[i][];j--)
{
f[j]=max(f[j],f[j-v[i][]]+w[i][]*v[i][]);
if(w[i][]>=&&j-v[i][]-v[i][]>=)
f[j]=max(f[j],f[j-v[i][]-v[i][]]+w[i][]*v[i][]+w[i][]*v[i][]);
if(w[i][]==&&j-v[i][]-v[i][]>=)
{
f[j]=max(f[j],f[j-v[i][]-v[i][]]+w[i][]*v[i][]+w[i][]*v[i][]);
if(j-v[i][]-v[i][]-v[i][]>=)
f[j]=max(f[j],f[j-v[i][]-v[i][]-v[i][]]+w[i][]*v[i][]+w[i][]*v[i][]+w[i][]*v[i][]);
}
}
printf("%d\n",f[n]);
return ;
}
【洛谷P1064】[NOIP2006] 金明的预算方案的更多相关文章
- [codevs1155][KOJ0558][COJ0178][NOIP2006]金明的预算方案
[codevs1155][KOJ0558][COJ0178][NOIP2006]金明的预算方案 试题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴 ...
- Luogu 1064 金明的预算方案 / CJOJ 1352 [NOIP2006] 金明的预算方案(动态规划)
Luogu 1064 金明的预算方案 / CJOJ 1352 [NOIP2006] 金明的预算方案(动态规划) Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己 ...
- NOIP2006 金明的预算方案
1. 金明的预算方案 (budget.pas/c/cpp) [问题描述] 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈 ...
- [LuoguP1064][Noip2006]金明的预算方案
金明的预算方案(Link) 题目描述 现在有\(M\)个物品,每一个物品有一个钱数和重要度,并且有一个\(Q\),如果\(Q = 0\),那么该物件可以单独购买,当\(Q != 0\)时,表示若要购买 ...
- NOIP2006金明的预算方案[DP 有依赖的背包问题]
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今 ...
- 洛谷【P1064】金明的预算方案
浅谈\(DP\):https://www.cnblogs.com/AKMer/p/10437525.html 题目传送门:https://www.luogu.org/problemnew/show/P ...
- NOIP 2006 金明的预算方案
洛谷 P1064 金明的预算方案 https://www.luogu.org/problem/P1064 JDOJ 1420: [NOIP2006]金明的预算方案 T2 https://neooj.c ...
- NOIP 2006 金明的预算方案(洛谷P1064,动态规划递推,01背包变形,滚动数组)
一.题目链接:P1064 金明的预算方案 二.思路 1.一共只有五种情况 @1.不买 @2.只买主件 @3.买主件和附件1(如果不存在附件也要运算,只是这时附件的数据是0,也就是算了对标准的结果也没影 ...
- 「NOIP2006」「LuoguP1064」 金明的预算方案(分组背包
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NNN元钱就行” ...
随机推荐
- C# 利用ITextSharp导出PDF文件
最近项目中需要导出PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...
- requirej入门(一)
随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...
- java将pdf转成base64字符串及将base64字符串反转pdf
package cn.wonders.utils; import java.io.BufferedInputStream;import java.io.BufferedOutputStream;imp ...
- Unity Collab
window-services下面打开面板,这里有开关(或者你也可以进入后台项目管理页面删除项目). 最大的圈是项目名称. 然后就打开了下面页面,关上就可以了.
- PlayMaker Rotate旋转
每秒 绕 Y轴 旋转 180度 ,每帧都执行. 不勾选Every Frame的话就只会旋转一帧.
- Java基础10-循日历制作
编写过程:先指定固定的年份来输出指定月份的日历 /*计算1900年1月1日到2018年11月1日一共有多少天 计算月份 对7进行取模,结果就为星期几 */ import java.util.Scann ...
- vue-cli生成的重要代码详解
安装好vue-cli之后,我们可以在package.json中看到下面所示: { // 项目名称 "name": "myvue", // 项目版本 " ...
- HDU——Cover——————【技巧】
Cover Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- compile with -fPIC
在新公司工作第四天,依然要编译FFmpeg,不同的是难度大了,以前遇到什么参数编译不过的,就去掉,因为不是专业做视频的,但是新公司绕不过了. 编译FFmpeg动态库的时候发现链接某些静态库的时候会报错 ...
- centos6 hadoop2.7.3分布式搭建
一.hadoop下载 apache所有的project都有自己的域名,可以通过apache官网下的project list去找,也可以直接定位project.apache.org,比如hadoop直接 ...