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. hdu4027Can you answer these queries?【线段树】

    A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use ...

  2. split和strip的使用

    我觉得都可以进行分隔,但最大的不同就是一个返回list,一个返回字符串 s1 = 'deng ye xun' s1.split() Out[8]: ['deng', 'ye', 'xun'] s1.s ...

  3. Ubuntu:14.04.2 安装多个Linux内核

    http://blog.csdn.net/ddk3001/article/details/47340119 安装Ubuntu 14.04.2 后,内核是 3.16.0-30-generic   1.虚 ...

  4. an upstream response is buffered to a temporary file

    an upstream response is buffered to a temporary file

  5. html中一些文字标签

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>菜鸟 ...

  6. Fire Game--FZU2150(bfs)

    http://acm.fzu.edu.cn/problem.php?pid=2150 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=659 ...

  7. FS Shell命令手册

    1.       FS Shell 1.1     简介 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式. 所有的的FS shell命令使用URI ...

  8. Shell 和Python的区别。

    shell 应该属于宏语言,顾名思义是系统的壳,方便与系统交互的在以下情况下,不使用shell,因为shell对此无能为力:如:跨平台,较复杂数学操作(如浮点运算,精确运算等),图形化界面 GUI,I ...

  9. NGINX负载均衡缓存配置

    环境:VMware-Workstation-12-Pro,Windows-10,CentOS-7.5,Xshell5 1 概述 如果我们的架构是前端负载均衡后端WEB集群时,可以开启nginx的缓存功 ...

  10. Linux实验楼学习之三

    查看用户 who am i or who mom likes who 命令其它常用参数 参数 说明 -a 打印能打印的全部 -d 打印死掉的进程 -m 同am i,mom likes -q 打印当前登 ...