题目描述

农夫约翰的奶牛们游戏成瘾!本来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】相关推荐

  1. 【GDKOI训练】纸牌游戏(card)

    [GDKOI训练]纸牌游戏(card) 题目描述 Bessie 是一头非常喜欢纸牌的奶牛,虽然她没有大拇指,但她对纸牌有近乎痴迷的喜 爱.不幸的是,牛群中的其他牛都不是好的对手.他们的水平真的很差.他 ...

  2. 电视游戏会是未来客厅娱乐的主角吗?

    在时下流行的多屏生态概念中,电视虽为最大屏幕,但与智能手机.平板等小屏相比,属于相对较弱的一环.无移动性.自身交互性不足,在一定程度上影响着它在移动时代的发展.而作为最能体现其"吸睛能力&q ...

  3. 太原益学领军2021年高考成绩查询,益学领军 | 2020寒假高三拼命班火爆进行中

    原标题:益学领军 | 2020寒假高三拼命班火爆进行中 自闭桃源称太古 欲栽大木柱长天 益学领军拼命班 名师集训树栋梁 2020寒假高三年级 授课内容 益学出尖峰 刺破青天锷未残 领军传三晋 名师集训 ...

  4. STEAM 97%好评,体验堪比《杀戮尖塔》,为什么玩家说这是2020年上半年最超值的游戏?

    当我们感叹<怪物火车>优秀地继承并创新了类<杀戮尖塔>的Roguelike DBG(卡牌构筑游戏,Deck Building Game)玩法时,或许不会想到在短短一个月后,又有 ...

  5. 题223.2022寒假天梯赛训练-7-12 清点代码库 (25 分)

    文章目录 题223.2022寒假天梯赛训练-7-12 清点代码库 (25 分) 一.题目 二.题解 题223.2022寒假天梯赛训练-7-12 清点代码库 (25 分) 一.题目 二.题解 我这个做法 ...

  6. 如何用php农场项目,2020全新亲测php农场游戏源码-金币菇种植理财区块链源码 带商城系统...

    2020全新亲测php农场游戏源码-金币菇种植理财区块链源码 带商城系统+抽奖系统+独家搭建教程 金币菇一款复利理财游戏,在这里大家可以更轻松.愉快的进行理财投资!本源码是一套理财游戏盘系统,蘑菇只是 ...

  7. PTA寒假基础题训练(含解题思路)(下)

    目录 7-36 字符串的冒泡排序 AC代码: 7-37 龟兔赛跑 AC代码: 7-38 N个数求和 AC代码: 7-39 数列求和-加强版 AC代码: 7-40 抓老鼠啊~亏了还是赚了? AC代码: ...

  8. 纪中暑假培训: Date 3:电视游戏问题

    2018.07.08[2018提高组]模拟C组:电视游戏问题 问题描述: 农夫约翰的奶牛们游戏成瘾!本来FJ是想要按照陶叫兽的做法拿她们去电击戒瘾的,可是后来他发现奶牛们玩游戏之后比原先产更多的奶.很 ...

  9. PTA寒假基础题训练(含解题思路)(中)

    目录 7-19 两个有序单链表求差集 AC代码: 7-20 统计数字字符和空格 AC代码: 7-21 打印沙漏 AC代码: 7-22 Wifi密码 AC代码: 7-23 福到了 AC代码: 7-24 ...

最新文章

  1. Activity的状态保存
  2. 3 MM配置-企业结构-定义-定义库存地点
  3. HTML学习笔记:设置超链接文本修饰
  4. 前脚修复,后脚放 PoC:马上修复这个严重的SAP Recon 漏洞!
  5. fileurlwithpath urlwithstring 这俩有啥区别吗
  6. Android高级模糊技术[转]
  7. JavaWeb案例:抽奖小游戏
  8. 第22课: JSP语句 switch判断语句 (JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)
  9. pip 安装小白教程
  10. 三、Snapman多人协作电子表格之——软件的基本功能
  11. 计算机中存储单位的认识与理解
  12. Tablespace free space
  13. python基础教程怎么看_python基础教程之看一篇,学一篇,今日份的pand
  14. 偏光显微镜基本原理及主要用途
  15. vscode配置Go支持
  16. 1+x大数据应用开发(java)理论题库/初级题库测验10
  17. 一篇就够——Kotlin快速入门
  18. OCR(汉字光符阅读器)
  19. COCO百度云下载链接
  20. 运行idea报错: Module was compiled with an incompatible version of Kotlin. The binary version of its meta

热门文章

  1. 计算机主机 滴滴响,为什么电脑一开机就滴滴响?
  2. Linux命令大全(三)(详解)文件传输、磁盘管理及磁盘维护
  3. html5和mt5区别,MT5: a HTML5 multitrack player for musicians
  4. C++ 中的名称冲突之 y1
  5. up to date, audited 1 package in 719msfound 0 vulnerabilities npm installnpm install node_modules没有生
  6. 骑行天下之北京到天津(2)
  7. linux怎么看mysql地址端口通不通_linux 测试端口通不通(四种方法)
  8. 硬盘数据丢失的原因和恢复方法
  9. python jieba分词及中文词频统计
  10. 运动会分数、积分统计程序