P2854 [USACO06DEC]牛的过山车Cow Roller Coaster

dp

对铁轨按左端点排个序,蓝后就是普通的二维dp了。

设$d[i][j]$为当前位置$i$,成本为$j$的最小花费

$d[i+a[u].w][j+a[u].c]=max(d[i+a[u].w][j+a[u].c],d[i][j]+a[u].f)$

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int max(int a,int b){return a>b?a:b;}
struct data{
int l,w,f,c;
void Init(){scanf("%d%d%d%d",&l,&w,&f,&c);}
bool operator < (const data &tmp) const{
return l<tmp.l;
}
}a[];
int n,m,b,d[][],ans=-;
int main(){
scanf("%d%d%d",&n,&m,&b);
for(int i=;i<=m;++i) a[i].Init();
sort(a+,a+m+);
memset(d,-,sizeof(d)); d[][]=;
for(int i=,u=;i<=n;++i){
for(;a[u].l<=i&&u<=m;++u){
if(a[u].l<i) continue;
for(int j=b-a[u].c;j>=;--j){
if(d[i][j]==-) continue;
d[i+a[u].w][j+a[u].c]=max(d[i+a[u].w][j+a[u].c],d[i][j]+a[u].f);
}
}
}
for(int i=;i<=b;++i) ans=max(ans,d[n][i]);
printf("%d",ans);
return ;
}

bzoj1649 / P2854 [USACO06DEC]牛的过山车Cow Roller Coaster的更多相关文章

  1. 洛谷P2854 [USACO06DEC]牛的过山车Cow Roller Coaster

    P2854 [USACO06DEC]牛的过山车Cow Roller Coaster 题目描述 The cows are building a roller coaster! They want you ...

  2. 【题解】P2854 [USACO06DEC]牛的过山车Cow Roller Coaster

    P2854 [USACO06DEC]牛的过山车Cow Roller Coaster 题目描述 The cows are building a roller coaster! They want you ...

  3. P2854 [USACO06DEC]牛的过山车Cow Roller Coaster

    题目描述 The cows are building a roller coaster! They want your help to design as fun a roller coaster a ...

  4. [luoguP2854] [USACO06DEC]牛的过山车Cow Roller Coaster(DP + sort)

    传送门 先按照起点 sort 一遍. 这样每一个点的只由前面的点决定. f[i][j] 表示终点为 i,花费 j 的最优解 状态转移就是一个01背包. ——代码 #include <cstdio ...

  5. bzoj1649 [Usaco2006 Dec]Cow Roller Coaster

    Description The cows are building a roller coaster! They want your help to design as fun a roller co ...

  6. 【动态规划】bzoj1649 [Usaco2006 Dec]Cow Roller Coaster

    很像背包. 这种在一个数轴上进行操作的题常常需要对区间排序. f[i][j]表示距离到i时,花费为j时的权值之和. f[x[i]+l[i]][j+c[i]]=max{f[x[i]][j]+w[i]}( ...

  7. 【bzoj1649】Cow Roller Coaster

    傻逼dp题. dp[i][j]表示用了i长度已花费成本j所能得到的价值. 然后枚举一下铁轨随便做了. 不行就sort一下. #include<bits/stdc++.h> #define ...

  8. HDU2063 过山车

    过山车 RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐.但是, ...

  9. HDOJ 2063 过山车

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

随机推荐

  1. Saltstack生产案例之Haproxy安装

    cd /srv/salt/prod/ mkdir haproxymkdir keepalivedmkdir nginxmkdir phpmkdir memcachedmkdir pkg cd pkg ...

  2. hdu4998 Rotate【计算几何】

    Noting is more interesting than rotation!  Your little sister likes to rotate things. To put it easi ...

  3. 忽略Git仓库中已经存在的文件

    解决方案 使用Git bash进入到要忽略的文件所在的文件夹,执行以下命令即可 git update-index --assume-unchanged rebel.xml 参考 Ignore Git ...

  4. zabbix 报警的返回值

    常用: {DATE} {ESC.HISTORY} {EVENT.AGE} {EVENT.DATE} {EVENT.ID} {EVENT.TIME} {HOSTNAME} {IPADDRESS} {IT ...

  5. 使用VS Code编译运行C/C++程序

    使用VS Code编译运行C/C++程序 - qq_435248055的博客 - CSDN博客 https://blog.csdn.net/qq_31823267/article/details/78 ...

  6. 开工:创建虚拟机,xshell连接虚拟机,复制虚拟机,docker安装,添加加速器

    创建虚拟机:http://www.linuxidc.com/Linux/2015-08/121807.htm http://www.linuxidc.com/Linux/2010-04/25573.h ...

  7. MySQL事务隔离级别详解(转)

    原文: http://xm-king.iteye.com/blog/770721 SQL标准对事务定义了4种隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的.低级别的隔 ...

  8. webpack笔记一

    gulp和grunt都以task来运行不同的命令,而看webpack相关文档都是webpack都是module.下面是一个简单的demo 一.目录解构 二.webpack.config.js文件 co ...

  9. java进程和线程的区别

    什么是进程,什么是线程系统要做一件事,运行一个任务,所有运行的任务通常就是一个程序:每个运行中的程序就是一个进程,这一点在任务管理器上面可以形象的看到.当一个程序运行时,内部可能会包含多个顺序执行流, ...

  10. Web Responsive Table, 只需CSS使table在手机和平板中完美显示

    在做responsive或者手机版页面的时候,经常碰到<Table>在手机和平板中会因为长度问题把页面撑大.最近看到一个比较好,比较方便的方法,而且仅仅用CSS 2就可以实现! 实例URL ...