NOIP提高组2006-金明的预算方案

链接

分析:依赖型0-1背包问题,对于一个主件,可以挂0个,1个,2个附件,所以最终为4种状态情况下的最大值。

 1 #include "iostream"
 2 #include "cstdio"
 3 #include "cstring"
 4 #include "string"
 5 using namespace std;
 6 const int maxn=60+10;
 7 const int maxm=32000+10;
 8 int N,m;
 9 int dp[maxm];
10 int v1[maxn],p1[maxn],v2[maxn],p2[maxn];
11 int v[maxn],p[maxn];
12 int main()
13 {
14     cin>>N>>m;
15     for(int i=0;i<62;i++){
16         v1[i]=0,p1[i]=0,v2[i]=0,p2[i]=0,v[i]=0,p[i]=0;
17     }
18     for(int i=1;i<=m;i++){
19         int a,b,q;
20         cin>>a>>b>>q;
21         if(q!=0){
22             if(v1[q]==0){
23                 v1[q]=a;
24                 p1[q]=b;
25             }else{
26                 v2[q]=a;
27                 p2[q]=b;
28             }
29         }else{
30             v[i]=a;
31             p[i]=b;
32         }
33     }
34     int mx=0;
35     for(int i=1;i<=m;i++){
36         for(int j=N;j>=v[i];j--){
37             dp[j]=max(dp[j],dp[j-v[i]]+v[i]*p[i]);
38             if(j>=(v[i]+v1[i]))
39                 dp[j]=max(dp[j],dp[j-v[i]-v1[i]]+v[i]*p[i]+v1[i]*p1[i]);
40             if(j>=(v[i]+v2[i]))
41                 dp[j]=max(dp[j],dp[j-v[i]-v2[i]]+v[i]*p[i]+v2[i]*p2[i]);
42             if(j>=(v[i]+v1[i]+v2[i]))
43                 dp[j]=max(dp[j],dp[j-v[i]-v1[i]-v2[i]]+v[i]*p[i]+v1[i]*p1[i]+v2[i]*p2[i]);
44             mx=max(mx,dp[j]);
45         }
46     }
47     cout<<mx<<endl;
48 }

时间: 2024-12-16 05:28:26

NOIP提高组2006-金明的预算方案的相关文章

SDNU 1179.金明的预算方案【NOIP 2006 提高组】【背包问题】【7月30】

金明的预算方案 Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行".今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子: 主件 附件 电脑 打印机,扫描仪 书柜 图书 书桌 台灯,文具 工作椅 无 如果要买归类为附件的物品,必须先买该附件所属的主件.每个主件可以

P1064 金明的预算方案

P1064 金明的预算方案 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行".今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子: 主件 附件 电脑 打印机,扫描仪 书柜 图书 书桌 台灯,文具 工作椅 无 如果要买归类为附件的物品,必须先买该附件所属的主件.每个主件可以有

动态规划背包问题 洛谷P1064 金明的预算方案

P1064 金明的预算方案 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行".今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子: 主件 附件 电脑 打印机,扫描仪 书柜 图书 书桌 台灯,文具 工作椅 无 如果要买归类为附件的物品,必须先买该附件所属的主件.每个主件可以有

背包DP:金明的预算方案

金明的预算方案 2006年NOIP全国联赛提高组 题目描述 Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子: 如果要买归类为附件的物品,必须先买该附件所属的主件.每个主件可以有0个.1个或2个附件.附件不再有从属于自

vijos1313:金明的预算方案

P1313金明的预算方案 Accepted 标签:NOIP提高组2006[显示标签] 描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件电脑 打印机,扫描仪书柜 图书书桌 台灯,文具工作椅 无如果要买归类为附件的物品,必须先买

tyvj 1057 金明的预算方案 背包dp

P1057 金明的预算方案 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2006 提高组 第二道 描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品, 怎么布置,你说了算,只要不超过N元钱就行”.今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一 些主件与附件的例子:主件 附件电脑 打印机,扫描仪

金明的预算方案

金明的预算方案 [问题描述] 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子: 主件 附件 电脑 打印机,扫描仪 书柜 图书 书桌 台灯,文具 工作椅 无 如果要买归类为附件的物品,必须先买该附件所属的主件.每个主件可以有0个.1个或2个附

背包形动态规划 fjutoj2375 金明的预算方案

金明的预算方案 TimeLimit:1000MS  MemoryLimit:128MB 64-bit integer IO format:%lld Problem Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:"你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行".今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的

luogu P1064 金明的预算方案

题目描述 题面 luogu P1064 金明的预算方案 题解 定义数组mw,mv分别储存每个主件的重量及价值,fw,fv分别储存每个主件的附件的重量及价值(按输入顺序确定两个附件的顺序): 对于当前状态,有四种选择: 1.只选当前的主件 2.选主件与附件1 3.选主件与附件2 4.选主件与附件1 附件2 那么就是一个很明确的dp方程了 套上01背包模板 输出答案f[N]. Code #include <cstdio> #include <algorithm> #define ll

金明的预算方案 (背包DP)

累~~~ 题目描述 Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子: <dl><dd> <colgroup><col width="66"/> <col