【动态规划】Vijos P1313 金明的预算方案(NOIP提高组2006第二题)
来源:互联网 发布:上海市人口普查数据 编辑:程序博客网 时间:2024/04/30 12:58
题目链接:
https://vijos.org/p/1313
题目大意:
m(m<=32000)金钱,n(n<=60)个物品,花费vi,价值vi*ci,每个物品可能有不超过2个附件,附件没有附件。
题目思路:
【动态规划】
01背包。因为至多2个附件,且附件没有附件,所以可以直接枚举4种情况。
////by coolxxx////<bits/stdc++.h>#include<iostream>#include<algorithm>#include<string>#include<iomanip>#include<memory.h>#include<time.h>#include<stdio.h>#include<stdlib.h>#include<string.h>//#include<stdbool.h>#include<math.h>#define min(a,b) ((a)<(b)?(a):(b))#define max(a,b) ((a)>(b)?(a):(b))#define abs(a) ((a)>0?(a):(-(a)))#define lowbit(a) (a&(-a))#define sqr(a) ((a)*(a))#define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))#define mem(a,b) memset(a,b,sizeof(a))#define eps (1e-8)#define J 10#define MAX 0x7f7f7f7f#define PI 3.14159265358979323#define N 64#define M 3204using namespace std;typedef long long LL;int cas,cass;int n,m,lll,ans;int v[N],c[N],q[N],l[N],r[N];int f[M];int main(){#ifndef ONLINE_JUDGE//freopen("1.txt","r",stdin);//freopen("2.txt","w",stdout);#endifint i,j;//for(scanf("%d",&cas);cas;cas--)//for(scanf("%d",&cas),cass=1;cass<=cas;cass++)//while(~scanf("%s",s))while(~scanf("%d",&m)){mem(f,0);mem(l,0);mem(r,0);m/=10;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d%d%d",&v[i],&c[i],&q[i]);v[i]/=10;if(q[i])if(l[q[i]])r[q[i]]=i;else l[q[i]]=i;}for(i=1;i<=n;i++){if(q[i])continue;for(j=m;j>=0;j--){if(j>=v[i])f[j]=max(f[j],f[j-v[i]]+c[i]*v[i]);if(l[i] && j>=v[i]+v[l[i]])f[j]=max(f[j],f[j-v[i]-v[l[i]]]+c[i]*v[i]+c[l[i]]*v[l[i]]);if(r[i] && j>=v[i]+v[r[i]])f[j]=max(f[j],f[j-v[i]-v[r[i]]]+c[i]*v[i]+c[r[i]]*v[r[i]]);if(l[i] && r[i] && j>=v[i]+v[l[i]]+v[r[i]])f[j]=max(f[j],f[j-v[i]-v[l[i]]-v[r[i]]]+c[i]*v[i]+c[l[i]]*v[l[i]]+c[r[i]]*v[r[i]]);}}printf("%d\n",f[m]*10);}return 0;}/*////*/
0 0
- 【动态规划】Vijos P1313 金明的预算方案(NOIP提高组2006第二题)
- Vijos P1313 金明的预算方案(动态规划,有依赖的背包)
- P1313金明的预算方案 动态规划(未解决)
- NOIP 2006 金明的预算方案|动态规划
- NOIP提高组2006 金明的预算方案
- NOIP 2006 - 提高组 金明的预算 动态规划(DP)
- 第七讲 有依赖的背包问题 vijos P1313金明的预算方案
- JZOJ1483、JZOJsenior1179.【NOIP提高组】金明的预算方案
- 蓝桥杯_算法提高_金明的预算方案(动态规划、01背包变形)
- Code Vs 1155 金明的预算方案&& 2006年NOIP全国联赛提高组
- 金明的预算方案 2006年NOIP全国联赛提高组
- SDNU 1179.金明的预算方案【NOIP 2006 提高组】【背包问题】【7月30】
- 金明的预算方案2006年NOIP全国联赛提高组
- NOIP 2006 提高组 复赛 budget 金明的预算方案
- 金明的预算方案【动态规划】
- 树形依赖背包(codevs1155 金明的预算方案 2006年NOIP全国联赛提高组)
- NOIP 2006 金明的预算方案
- noip 2006 金明的预算方案
- 【归并排序】【逆序数】HDU 5775 Bubble Sort
- 【动态规划】【KMP】HDU 5763 Another Meaning
- 【动态规划】【二分】【最长上升子序列】HDU 5773 The All-purpose Zero
- 【动态规划】Vijos P1037 搭建双塔
- 【动态规划】Vijos P1104 采药(NOIP2005普及组第三题)
- 【动态规划】Vijos P1313 金明的预算方案(NOIP提高组2006第二题)
- html改成jsp页面,中文出现乱码
- hadoop HA模式重新格式化出现错误:INFO ipc.Client: Retrying connect to server:***:8485. Already
- Android-荧光效果
- 【动态规划】【归并】Vijos P1412 多人背包
- 【STL】【模拟】Codeforces 696A Lorenzo Von Matterhorn
- 【动态规划】【二分】【最长上升子序列】Vijos P1028 魔族密码
- 【动态规划】【最长公共子序列】Vijos P1111 小胖的水果
- 【动态规划】Vijos P1680 距离