2020寒假【gmoj1593】【GDKOI训练】【电视游戏问题vidgame】【DP】
题目描述
农夫约翰的奶牛们游戏成瘾!本来FJ是想要按照陶教授的做法拿她们去电击戒瘾的,可是后来他发现奶牛们玩游戏之后比原先产更多的奶。很明显,这是因为满足的牛会产更多的奶。但是,奶牛们在哪个才是最好的游戏平台这个问题上产生了巨大的分歧。一只奶牛想要买一台Xbox 360来跑《光晕3》;另外一只奶牛想要一台任天堂Wii来跑《任天堂明星大乱斗X》;第三只奶牛想要在PlayStation 3上面玩《潜龙谍影4》,顺便还能看某些高画质的电影。
FJ想要在给定的预算内购入一些游戏平台和一些游戏,使他的奶牛们生产最多的奶牛以养育最多的孩子。FJ研究了N(1 <= N <= 50)种游戏平台,每一种游戏平台的价格是P_i(1 <= P_i <= 1000),并且每一种游戏平台有G_i(1 <= G_i <= 10)个只能在这种平台上运行的游戏。很明显,奶牛必须先买进一种游戏平台,才能买进在这种游戏平台上运行的游戏。每一个游戏有一个游戏的价格GP_j(1 <= GP_j 价格 <= 100)并且有一个产出值PV_j(1 <= PV_j<= 1000000),表示一只牛在玩这个游戏之后会产出多少牛奶。
最后,农夫约翰的预算为V(1 <= V <= 100000),即他最多可以花费的金钱。请帮助他确定应该买什么游戏平台和游戏,使得他能够获得的产出值的和最大。
考虑下面的数据,有N种游戏平台,并且有V=$800预算。第一种游戏平台花费$300并且有两个游戏,价格分别为$30和$25,它们的产出值如下所示:
游戏 # 花费 产出值1 $30 502 $25 80
第二种平台价格为$600,并且只有一种游戏:
游戏 # 花费 产出值1 $50 130
第三种平台价格为$400,并且有三种游戏:
游戏 # 花费 产出值1 $40 702 $30 403 $35 60
农夫约翰应该买第1和第3种平台,并且买平台1的游戏2,还有平台3的游戏1和游戏3。使得最后他最后的产出值最大,为210产出值:
预算: $800 平台 1 -$300游戏 2 -$25 80平台 3 -$400游戏 1 -$40 70游戏 3 -$35 60-------------------------------------------总计: 0 (>= 0) 210
输入
第1行: 两个由空格隔开的整数: N和V
第2到第N+1行: 第i+1行表示第i种游戏平台的价格和可以在这种游戏平台上面运行的游戏。包含: P_i, G_i还有G_i对由空格隔开的整数GP_j, PV_j
输出
第1行: 农夫约翰在预算内可以得到的最大的产出值。
样例输入
3 800
300 2 30 50 25 80
600 1 50 130
400 3 40 70 30 40 35 60
样例输出
210
分析
一道变形的01背包。。。
设 f[i][1] 为当前花费了i元的最大产值,f[i][2] 为上一次的最大产值,我们可以得出动态转移方程:不选平台时: f [ i ] [ 0 ] = f [ i − 平 台 代 价 ] [ 1 ] f[i][0]=f[i−平台代价][1] f[i][0]=f[i−平台代价][1]选这个平台时要选游戏: f [ i ] [ 0 ] = m a x ( f [ i − 游 戏 代 价 ] [ 0 ] + c , f [ i ] [ 0 ] ) f[i][0]=max(f[i−游戏代价][0]+c,f[i][0]) f[i][0]=max(f[i−游戏代价][0]+c,f[i][0])最后记录最大值(打擂台啊): f [ j ] [ 1 ] = m a x ( f [ j ] [ 0 ] , f [ j ] [ 1 ] ) f[j][1]=max(f[j][0],f[j][1]) f[j][1]=max(f[j][0],f[j][1])
上代码
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n,v,f[100001][3],x,ans,m,p,q;
int main()
{freopen("vidgame.in","r",stdin);freopen("vidgame.out","w",stdout);cin>>n>>v;for(int i=1;i<=n;i++){cin>>m>>x;for(int j=v;j>=m;j--){f[j][1]=f[j-m][2];}for(int j=1;j<=x;j++){cin>>p>>q;for(int k=v;k>=m+p;k--){f[k][1]=max(f[k-p][1]+q,f[k][1]);} }for(int j=1;j<=v;j++){f[j][2]=max(f[j][2],f[j][1]);}}cout<<f[v][2];
}
2020寒假【gmoj1593】【GDKOI训练】【电视游戏问题vidgame】【DP】相关推荐
- 【GDKOI训练】纸牌游戏(card)
[GDKOI训练]纸牌游戏(card) 题目描述 Bessie 是一头非常喜欢纸牌的奶牛,虽然她没有大拇指,但她对纸牌有近乎痴迷的喜 爱.不幸的是,牛群中的其他牛都不是好的对手.他们的水平真的很差.他 ...
- 电视游戏会是未来客厅娱乐的主角吗?
在时下流行的多屏生态概念中,电视虽为最大屏幕,但与智能手机.平板等小屏相比,属于相对较弱的一环.无移动性.自身交互性不足,在一定程度上影响着它在移动时代的发展.而作为最能体现其"吸睛能力&q ...
- 太原益学领军2021年高考成绩查询,益学领军 | 2020寒假高三拼命班火爆进行中
原标题:益学领军 | 2020寒假高三拼命班火爆进行中 自闭桃源称太古 欲栽大木柱长天 益学领军拼命班 名师集训树栋梁 2020寒假高三年级 授课内容 益学出尖峰 刺破青天锷未残 领军传三晋 名师集训 ...
- STEAM 97%好评,体验堪比《杀戮尖塔》,为什么玩家说这是2020年上半年最超值的游戏?
当我们感叹<怪物火车>优秀地继承并创新了类<杀戮尖塔>的Roguelike DBG(卡牌构筑游戏,Deck Building Game)玩法时,或许不会想到在短短一个月后,又有 ...
- 题223.2022寒假天梯赛训练-7-12 清点代码库 (25 分)
文章目录 题223.2022寒假天梯赛训练-7-12 清点代码库 (25 分) 一.题目 二.题解 题223.2022寒假天梯赛训练-7-12 清点代码库 (25 分) 一.题目 二.题解 我这个做法 ...
- 如何用php农场项目,2020全新亲测php农场游戏源码-金币菇种植理财区块链源码 带商城系统...
2020全新亲测php农场游戏源码-金币菇种植理财区块链源码 带商城系统+抽奖系统+独家搭建教程 金币菇一款复利理财游戏,在这里大家可以更轻松.愉快的进行理财投资!本源码是一套理财游戏盘系统,蘑菇只是 ...
- PTA寒假基础题训练(含解题思路)(下)
目录 7-36 字符串的冒泡排序 AC代码: 7-37 龟兔赛跑 AC代码: 7-38 N个数求和 AC代码: 7-39 数列求和-加强版 AC代码: 7-40 抓老鼠啊~亏了还是赚了? AC代码: ...
- 纪中暑假培训: Date 3:电视游戏问题
2018.07.08[2018提高组]模拟C组:电视游戏问题 问题描述: 农夫约翰的奶牛们游戏成瘾!本来FJ是想要按照陶叫兽的做法拿她们去电击戒瘾的,可是后来他发现奶牛们玩游戏之后比原先产更多的奶.很 ...
- PTA寒假基础题训练(含解题思路)(中)
目录 7-19 两个有序单链表求差集 AC代码: 7-20 统计数字字符和空格 AC代码: 7-21 打印沙漏 AC代码: 7-22 Wifi密码 AC代码: 7-23 福到了 AC代码: 7-24 ...
最新文章
- Activity的状态保存
- 3 MM配置-企业结构-定义-定义库存地点
- HTML学习笔记:设置超链接文本修饰
- 前脚修复,后脚放 PoC:马上修复这个严重的SAP Recon 漏洞!
- fileurlwithpath urlwithstring 这俩有啥区别吗
- Android高级模糊技术[转]
- JavaWeb案例:抽奖小游戏
- 第22课: JSP语句 switch判断语句 (JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)
- pip 安装小白教程
- 三、Snapman多人协作电子表格之——软件的基本功能
- 计算机中存储单位的认识与理解
- Tablespace free space
- python基础教程怎么看_python基础教程之看一篇,学一篇,今日份的pand
- 偏光显微镜基本原理及主要用途
- vscode配置Go支持
- 1+x大数据应用开发(java)理论题库/初级题库测验10
- 一篇就够——Kotlin快速入门
- OCR(汉字光符阅读器)
- COCO百度云下载链接
- 运行idea报错: Module was compiled with an incompatible version of Kotlin. The binary version of its meta
热门文章
- 计算机主机 滴滴响,为什么电脑一开机就滴滴响?
- Linux命令大全(三)(详解)文件传输、磁盘管理及磁盘维护
- html5和mt5区别,MT5: a HTML5 multitrack player for musicians
- C++ 中的名称冲突之 y1
- up to date, audited 1 package in 719msfound 0 vulnerabilities npm installnpm install node_modules没有生
- 骑行天下之北京到天津(2)
- linux怎么看mysql地址端口通不通_linux 测试端口通不通(四种方法)
- 硬盘数据丢失的原因和恢复方法
- python jieba分词及中文词频统计
- 运动会分数、积分统计程序