codevs 1155今明的预算方案(复习有依赖性的背包问题)
1155 金明的预算方案
【题目大意】买附件必须买主件。
在一定钱数内 求总价值最大。
【题解】有依赖性的背包问题。
【code】
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; int n,m,zc,ans; int c[],pri[][],imp[][]; void dfs(int x,int res,int nowa){
ans=max(ans,nowa);
if(res==)return;
if(x>zc)return;
dfs(x+,res,nowa);
if(res-pri[x][]>=)dfs(x+,res-pri[x][],nowa+pri[x][]*imp[x][]);
if(c[x]){
if(res-pri[x][]-pri[x][]>=)dfs(x+,res-pri[x][]-pri[x][],nowa+pri[x][]*imp[x][]+pri[x][]*imp[x][]);
if(c[x]==){
if(res-pri[x][]-pri[x][]>=)dfs(x+,res-pri[x][]-pri[x][],nowa+pri[x][]*imp[x][]+pri[x][]*imp[x][]);
if(res-pri[x][]-pri[x][]-pri[x][]>=)dfs(x+,res-pri[x][]-pri[x][]-pri[x][],nowa+pri[x][]*imp[x][]+pri[x][]*imp[x][]+pri[x][]*imp[x][]);
}
}
} int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++){
int v,p,q;
scanf("%d%d%d",&v,&p,&q);
if(q==)pri[++zc][]=v,imp[zc][]=p;
else {
c[q]++;int a=c[q];
pri[q][a]=v;imp[q][a]=p;
}
}
dfs(,n,);
printf("%d\n",ans);
return ;
}
50暴力
#include<iostream>
#include<cstdio>
using namespace std;
struct e
{
int v,p,q,w,f[];
}g[];
int n,m,f[];
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&g[i].v,&g[i].p,&g[i].q);
g[i].w=g[i].v*g[i].p;
if(g[i].q!=)
g[g[i].q].f[++g[g[i].q].f[]]=i;
}
for(int i=;i<=m;i++)
{
if(g[i].q==)
{
int f1=g[i].f[],f2=g[i].f[];
for(int j=n;j>=g[i].v;j--)
{
if(f1&&j-g[f1].v-g[i].v>=)
f[j]=max(f[j],f[j-g[i].v-g[f1].v]+g[i].w+g[f1].w);
if(f2&&j-g[f2].v-g[i].v>=)
f[j]=max(f[j],f[j-g[i].v-g[f2].v]+g[i].w+g[f2].w);
if(f1&&f2&&j-g[i].v-g[f1].v-g[f2].v>=)
f[j]=max(f[j],f[j-g[i].v-g[f1].v-g[f2].v]+g[i].w+g[f1].w+g[f2].w);
f[j]=max(f[j],f[j-g[i].v]+g[i].w); }
}
}
printf("%d\n",f[n]);
return ;
}
codevs 1155今明的预算方案(复习有依赖性的背包问题)的更多相关文章
- codevs 1155 金明的预算方案
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房 ...
- NOIP2006金明的预算方案[DP 有依赖的背包问题]
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今 ...
- 动态规划(背包问题):HRBUST 1377 金明的预算方案
金明的预算方案 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行 ...
- [codevs1155][KOJ0558][COJ0178][NOIP2006]金明的预算方案
[codevs1155][KOJ0558][COJ0178][NOIP2006]金明的预算方案 试题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴 ...
- NOIP2006 金明的预算方案
1. 金明的预算方案 (budget.pas/c/cpp) [问题描述] 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈 ...
- Luogu 1064 金明的预算方案 / CJOJ 1352 [NOIP2006] 金明的预算方案(动态规划)
Luogu 1064 金明的预算方案 / CJOJ 1352 [NOIP2006] 金明的预算方案(动态规划) Description 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己 ...
- [LuoguP1064][Noip2006]金明的预算方案
金明的预算方案(Link) 题目描述 现在有\(M\)个物品,每一个物品有一个钱数和重要度,并且有一个\(Q\),如果\(Q = 0\),那么该物件可以单独购买,当\(Q != 0\)时,表示若要购买 ...
- 算法笔记_103:蓝桥杯练习 算法提高 金明的预算方案(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些 ...
- tyvj 1057 金明的预算方案 背包dp
P1057 金明的预算方案 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2006 提高组 第二道 描述 金明今天很开心,家里购置的新房就要领钥匙了 ...
随机推荐
- visual studio usage tips
reset all settings on visual stdio microsoft visual studio X\common7\ide\devenv.exe /setup /resetuse ...
- Delphi TScrollBar 用于滚动窗口、组件内容
滚动条组件(TScrollBar)此组件是一个Windows滚动条,用于滚动窗口.组件内容.许多控制有滚动条属性,它们把滚动条作为自己的一部分,对于没有完整滚动条的控制,TScrollBar组件提供了 ...
- U-net图像分割
[Keras]基于SegNet和U-Net的遥感图像语义分割 2014 年,加州大学伯克利分校的 Long 等人提出全卷积网络(FCN),这使得卷积神经网络无需全连接层即可进行密集的像素预测,CNN ...
- 如何提高NodeJS程序的运行的稳定性
如何提高NodeJS程序运行的稳定性 我们常通过node app.js方式运行nodejs程序,但总有一些异常或错误导致程序运行停止退出.如何保证node程序的稳定运行? 下面是一些可以考虑的方案: ...
- react webapp 开发小结
1.监听props的方法 componentWillReceiveProps(nextProps) { // } 2.监听state的方法 3.props 传递的方法 <AlarmList {. ...
- Visual Studio 12无法调试Silverligh应用程序的问题
环境: Win7 Ultimate X64 Visual Studio 12 (以下简称 VS12) Internet Explorer 9(以下简称 IE9) Silverlight5_x64 ad ...
- Selenium系列之--05 录制脚本并导出
一.下载Firefox Firefox官方下载地址:http://www.firefox.com.cn/download/#more,下载延长支持版. 二.下载插件 Selenium本身有录制功能组件 ...
- Something about cache
http://www.tyut.edu.cn/kecheng1/2008/site04/courseware/chapter5/5.5.htm 5.5 高速缓冲存储器cache 随着CPU时钟速率的不 ...
- Kristen Grauman
http://www.cs.utexas.edu/~grauman/ CV Publications Code Data Short ...
- Hadoop集群_Hadoop安装配置
1.集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesy ...