农夫约翰的奶牛们游戏成瘾!本来约翰是想要按照调教兽的做法拿她们去电击戒瘾的,可是 后来他发现奶牛们玩游戏之后比原先产更多的奶.很明显,这是因为满足的牛会产更多的奶.

但是,奶牛们在哪个才是最好的游戏平台这个问题上产生了巨大的分歧.约翰想要在给定的 预算内购入一些游戏平台和一些游戏,使他的奶牛们生产最多的奶牛以养育最多的孩子.

约翰研究了N种游戏平台,每一种游戏平台的价格是Pi 并且每一种游戏平台有Gi个只能在这种平台上运行的游戏.很明显,奶牛必须 先买进一种游戏平台,才能买进在这种游戏平台上运行的游戏.每一个游戏有一个游戏的价 格GPi并且有一个产出值PVj< 1000000),表示一只牛在玩这个游戏之后会产出多少牛奶.最后,农夫约翰的预算为V<100000),即他最多可以花费的金钱.请 帮助他确定应该买什么游戏平台和游戏,使得他能够获得的产出值的和最大.

输入输出格式

输入格式:

* Line 1: Two space-separated integers: N and V

* Lines 2..N+1: Line i+1 describes the price of and the games

available for console i; it contains: P_i, G_i, and G_i pairs of space-separated integers GP_j, PV_j

输出格式:

* Line 1: The maximum production value that Farmer John can get with his budget.

输入输出样例

输入样例#1:

3 800
300 2 30 50 25 80
600 1 50 130
400 3 40 70 30 40 35 60
输出样例#1:

210 


第一次做这样的DP?(雾)
设f[i][j]表示考虑完前i个平台,花j元钱的最大收益。
然后每次强制选了第i个平台,然后对这个平台的物品进行一次o1背包,求出必须选第i个平台时花j元钱的最大收益。
然后再每次与上一次的DP结果比较一下,看看是否在花了j元钱的时候,选择第i个平台更优...
(雾)长见识了,DP还能这么玩。

 
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <bitset>
#include <algorithm>
using namespace std;
#define reg register
#define gc getchar
inline int read() {
int res=;char ch=gc();bool fu=;
while(!isdigit(ch)){if(ch=='-')fu=;ch=gc();}
while(isdigit(ch))res=(res<<)+(res<<)+(ch^), ch=gc();
return fu?-res:res;
} int n, m;
int f[][]; int main()
{
n = read(), m = read();
for (reg int i = ; i <= n ; i ++)
{
int p = read(), g = read();
for (reg int j = p ; j <= m ; j ++) f[i][j] = f[i - ][j - p];
for (reg int k = ; k <= g ; k ++)
{
int cost = read(), val = read();
for (reg int j = m ; j >= cost + p ; j --) f[i][j] = max(f[i][j], f[i][j - cost] + val);
}
for (reg int j = ; j <= m ; j ++) f[i][j] = max(f[i][j], f[i - ][j]);
}
cout << f[n][m] << endl;
return ;
}


[Luogu2967] 视频游戏的麻烦Video Game Troubles的更多相关文章

  1. P2967 [USACO09DEC]视频游戏的麻烦Video Game Troubles

    冲刺阶段的首篇题解! 题目链接:P2967 [USACO09DEC]视频游戏的麻烦Video Game Troubles: 题目概述: 总共N个游戏平台,金额上限V元,给出每个游戏平台的价钱和其上游戏 ...

  2. [USACO09DEC]视频游戏的麻烦Video Game Troubles(DP)

    https://www.luogu.org/problem/P2967 https://ac.nowcoder.com/acm/contest/1077/B 题目描述 Farmer John's co ...

  3. LG_2967_[USACO09DEC]视频游戏的麻烦Video Game Troubles

    题目描述 Farmer John's cows love their video games! FJ noticed that after playing these games that his c ...

  4. <USACO09DEC>视频游戏的麻烦Video Game Troublesの思路

    emm今天模拟赛的题.神奇地A了 #include<cstdio> #include<cstring> #include<iostream> #include< ...

  5. 【USACO12JAN】视频游戏的连击Video Game Combos

    题目描述 Bessie is playing a video game! In the game, the three letters 'A', 'B', and 'C' are the only v ...

  6. [洛谷3041]视频游戏的连击Video Game Combos

    题目描述 Bessie is playing a video game! In the game, the three letters 'A', 'B', and 'C' are the only v ...

  7. [USACO12JAN]视频游戏的连击Video Game Combos(AC自动机+DP)

    Description 贝西正在打格斗游戏.游戏里只有三个按键,分别是“A”.“B”和“C”.游戏中有 N 种连击 模式,第 i 种连击模式以字符串 Si 表示,只要贝西的按键中出现了这个字符串,就算 ...

  8. [Luogu3041][USACO12JAN]视频游戏的连击Video Game Combos

    题面 sol 设\(f_{i,j}\)表示填了前\(i\)个字母,在\(AC\)自动机上跑到了节点\(j\)的最大得分.因为匹配需要暴跳\(fail\)所以预先把\(fail\)指针上面的匹配数传下来 ...

  9. 洛谷P3041 视频游戏的连击Video Game Combos [USACO12JAN] AC自动机+dp

    正解:AC自动机+dp 解题报告: 传送门! 算是个比较套路的AC自动机+dp趴,,, 显然就普普通通地设状态,普普通通地转移,大概就f[i][j]:长度为i匹配到j 唯一注意的是,要加上所有子串的贡 ...

随机推荐

  1. SWPU CTF题解

    本博客为西南石油大学(南充校区)CTF团队赛的题解 所有题目网址:http://47.106.87.69:9000/game 今天我是流泪狗狗头 解压后发现压缩包中是一个带有密码的图片,winhex分 ...

  2. charles DNS欺骗

    本文参考:charles DNS欺骗 DNS欺骗/DNS Spoofing 功能:通过将您自己的主机名指定给远程地址映射来欺骗DNS查找 一般的开发流程中,在上线之前都需要在测试环境中先行进行验证,而 ...

  3. CDH5.16.1离线集成Phoenix

    1.安装环境 Centos 7.6 CDH 5.16.1 2.下载Phoenix所需的parcel包 3.上传parcel包到ClouderaManager server所在的节点上 /opt/clo ...

  4. ZooKeeper单机客户端的启动流程源码阅读

    客户端的启动流程 看上面的客户端启动的脚本图,可以看到,zookeeper客户端脚本运行的入口ZookeeperMain.java的main()方法, 关于这个类可以理解成它是程序启动的辅助类,由它提 ...

  5. Redis基础(官方文档总结)

    REmote DIctionary Server(Redis) Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供 ...

  6. Splitting into digits CodeForce#1104A

    题目链接:Splitting into digits 题目原文 Vasya has his favourite number 

  7. Linux虚拟机--进入MySQL报错的解决办法

    在Linux安装MySQL有时候会出现 [mysql]ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/ ...

  8. WPF 将字体文件 添加到 资源文件,并在后台代码使用

    先看结果 1.将字体文件,导入到资源文件,如: 添加后,自动生成 2.在窗体xaml中添加如: 3.在xaml窗体对应的cs文件中,为TextBlock指定字段 创建一个字段对象,并指定字体文件的所在 ...

  9. for for in 给已有的li绑定click事件生成新的li也有click事件

    想要给已有的li元素绑定一个click事件,点击生成新的li元素,并且新的li元素也要有click事件 //不能用for循环给每个li绑定click事件 因为这样的话 后面新生成的li就没有click ...

  10. Ubuntu su命令 Authentication failure的解决办法

    重新设置root的密码: $ sudo passwd root Enter new UNIX password: Retype new UNIX password: passwd: password ...