题目描述

输入

* 第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
 
一看到这题第一感觉就是背包,这题确实就是背包,只不过和平常的背包有些不同,在卖一些东西之前要先买另一个东西,而且这个东西还没有价值(虽然有没有价值不太重要qwq)。既然买游戏的前提是买游戏平台,那么我们不妨以是否买游戏平台做状态来转移,设f[i][j]代表不买第i个游戏平台总共花了j元的最大价值、g[i][j]代表买第i个游戏平台总共花了j元的最大价值。对于买了游戏平台的状态(也就是每个g[i][j])再对它包含的游戏进行状态转移。但要注意数组初始值要赋成极小值来避免无用状态的转移。
最后附上代码。
#include<queue>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,m;
int x,y;
int v,c;
int g[51][100010];
int f[51][100010];
int main()
{
scanf("%d%d",&n,&m);
memset(g,0x80,sizeof(g));
memset(f,0x80,sizeof(f));
for(int i=0;i<=m;i++)
{
g[0][i]=f[0][i]=0;
}
for(int i=1;i<=n;i++)
{
scanf("%d%d",&v,&c);
for(int j=0;j<=m;j++)
{
f[i][j]=max(f[i-1][j],g[i-1][j]);
if(v<=j)
{
g[i][j]=max(g[i-1][j-v],f[i-1][j-v]);
}
}
while(c--)
{
scanf("%d%d",&x,&y);
for(int j=m;j>=v;j--)
{
g[i][j]=max(g[i][j],g[i][j-x]+y);
}
}
}
printf("%d",max(f[n][m],g[n][m]));
}

BZOJ1775[USACO 2009 Dec Gold 3.Video Game Troubles]——DP的更多相关文章

  1. BZOJ1774[USACO 2009 Dec Gold 2.Cow Toll Paths]——floyd

    题目描述 跟所有人一样,农夫约翰以着宁教我负天下牛,休叫天下牛负我的伟大精神,日日夜夜苦思生 财之道.为了发财,他设置了一系列的规章制度,使得任何一只奶牛在农场中的道路行走,都 要向农夫约翰上交过路费 ...

  2. [USACO 2017 Dec Gold] Tutorial

    Link: USACO 2017 Dec Gold 传送门 A: 为了保证复杂度明显是从终结点往回退 结果一开始全在想优化建边$dfs$……其实可以不用建边直接$multiset$找可行边跑$bfs$ ...

  3. NC24866 [USACO 2009 Dec S]Music Notes

    NC24866 [USACO 2009 Dec S]Music Notes 题目 题目描述 FJ is going to teach his cows how to play a song. The ...

  4. BZOJ1577 USACO 2009 Feb Gold 1.Fair Shuttle Solution

    权限题,不给传送门啦!在学校OJ上交的.. 有些不开心,又是一道贪心,又是一个高级数据结构的模板,又是看了别人的题解还写崩了QAQ,蒟蒻不需要理由呀. 正经题解: 首先,我们可以由「显然成立法」得出, ...

  5. Usaco 2010 Dec Gold Exercise(奶牛健美操)

    /*codevs 3279 二分+dfs贪心检验 堆版本 re一个 爆栈了*/ #include<cstdio> #include<queue> #include<cst ...

  6. BZOJ1579 USACO 2009 Feb Gold 3.Revamping Trails Solution

    标题效果:一个N积分m无向图边.它可以是路径k右边缘值变0,确定此时1-n最短路径长度. Sol:我以为我们考虑分层图,图复制k+1部分,每间0~k一层.代表在这个时候已经过去"自由边缘&q ...

  7. [USACO 2016 Dec Gold] Tutorial

    Link: 传送门 A: 贪心从小到大插入,用并查集维护连通性 #include <bits/stdc++.h> using namespace std; #define X first ...

  8. [USACO 2011 Dec Gold] Threatening Letter【后缀】

    Problem 3: Threatening Letter [J. Kuipers, 2002] FJ has had a terrible fight with his neighbor and w ...

  9. [USACO 2011 Dec Gold] Cow Calisthenics【二分】

    Problem 1: Cow Calisthenics [Michael Cohen, 2010] Farmer John continues his never-ending quest to ke ...

随机推荐

  1. Selenium:集成测试报告

    参考内容:虫师:<selenium2自动化测试实战——基于python语言> PS:书中的代码,只能做参考,最好还是自己码一码,不一定照搬就全是对的,实践出真知啊,踩了很多坑的说... 随 ...

  2. Jquery UI 中的datepicker() ,获取日期后的回调函数onClose()

    <head> //引入相关的css/js <link rel="stylesheet" href="//code.jquery.com/ui/1.10. ...

  3. BZOJ 3561 DZY Loves Math VI

    BZOJ 3561 DZY Loves Math VI 求\(\sum_{i=1}^{n}\sum_{j=1}^{m}\text{lcm}(i,j)^{\gcd(i,j)}\),钦定\(n\leq m ...

  4. Linux常用命令行

    实时查看日志runtime.log最后100行 tail -f -n 100 runtime.log

  5. openssl版本升级操作记录

    需要部署nginx的https环境,之前是yum安装的openssl,版本比较低,如下: [root@nginx ~]# yum install -y pcre pcre-devel openssl ...

  6. mysql启动后随即关闭问题解决(ibdata1文件损坏导致)

    机房一台服务器上的mysql运行一段时间了,突然出现了一个很奇怪的现象:重启后无法恢复了!准确情况是:启动mysql后随即就又关闭了. 查看mysql错误日志如下: 160920 22:41:41 m ...

  7. 测试网站页面网速的一个简单Python脚本

    无聊之余,下面分享一个Python小脚本:测试网站页面访问速度 [root@huanqiu ~]# vim pywww.py #!/usr/bin/python # coding: UTF-8 imp ...

  8. Mysql抓包工具 - MySQL Sniffer 使用小结 (含带general_log日志)

    在mysql运维工作中,一般会使用tcpdump做一些分析(直接读分析日志比较难以看明白,在数据库连接值高时使用):对于mysql实时的连接监控分析,通常会使用"mysqladmin/sho ...

  9. Linux下Redis主从复制以及SSDB主主复制环境部署记录

    前面的文章已经介绍了redis作为缓存数据库的说明,本文主要说下redis主从复制及集群管理配置的操作记录: Redis主从复制(目前redis仅支持主从复制模式,可以支持在线备份.读写分离等功能.) ...

  10. 对我们最常用的软件QQ的看法

    QQ聊天软件是我使用的第一款聊天软件,早在我上小学6年级的时候就开始接触这款软件了,可以说是陪伴我最久的一款软件. 相对于其他的聊天软件,QQ更加的方便,使用简单,界面也好操作,所以我爱上了这款软件. ...