P2948 [USACO09OPEN]滑雪课Ski Lessons
题意:Bessie去滑雪,限时T,滑雪场有S节课
每节课开始于$m_i$,长度为$l_i$,可以将Bessie的能力值变成$a_i$(注意是变成不是增加)
有n个滑雪坡,去滑雪需要$c_i$的能力,并且耗时$d_i$
问Bessie最多能滑几次雪
一看这么多变量,很显然就是DP啦(只是不会而已)
变量:时间,课程,坡,能力,次数(额,咋设状态呢。。。。)
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cctype>
#include<algorithm>
using namespace std;
#define int long long
#define olinr return
#define _ 0
#define love_nmr 0
#define DB double
inline int read()
{
int x=,f=;
char ch=getchar();
while(!isdigit(ch))
{
if(ch=='-')
f=-f;
ch=getchar();
}
while(isdigit(ch))
{
x=(x<<)+(x<<)+(ch^);
ch=getchar();
}
return x*f;
}
inline void put(int x)
{
if(x<)
{
x=-x;
putchar('-');
}
if(x>)
put(x/);
putchar(x%+'');
}
int t;
int s;
int n;
int f[][]; //f[i][j]表示到i时刻,能力值为j的最多滑雪次数
int ks[][]; //ks[i][j]表示在i时刻结束,获得j能力的课程的最晚开始时间
int g[]; //g[i]表示到i时刻的最多滑雪次数
int st[]; //st[i]表示能力值>=i的最短滑雪时间
signed main()
{
t=read();
s=read();
n=read();
for(int a,b,c,i=;i<=s;i++) //预处理ks
{
a=read();
b=read();
c=read();
ks[a+b-][c]=max(ks[a+b-][c],a);
}
memset(st,0x3f,sizeof st);
for(int a,b,i=;i<=n;i++) //预处理st
{
a=read();
b=read();
for(int j=;j>=a;j--)
st[j]=min(st[j],b);
}
memset(f,-0x3f,sizeof f); //初始值
f[][]=g[]=; //初始能力为1
for(int i=;i<=t;i++)
for(int j=;j<=;j++)
{
f[i][j]=f[i-][j]; //啥也不干QAQ
if(ks[i-][j]) f[i][j]=max(f[i][j],g[ks[i-][j]]); //表示在前一分钟刚刚上完课,niubi了
if(i-st[j]>=) f[i][j]=max(f[i][j],f[i-st[j]][j]+); //去滑雪
g[i]=max(g[i],f[i][j]); //每次更新
}
put(g[t]);
olinr ~~(^_^)+love_nmr;
}
P2948 [USACO09OPEN]滑雪课Ski Lessons的更多相关文章
- [USACO09OPEN]滑雪课Ski Lessons
题目描述 Farmer John wants to take Bessie skiing in Colorado. Sadly, Bessie is not really a very good sk ...
- [luoguP2948] [USACO09OPEN]滑雪课Ski Lessons(DP)
传送门 f[i][j]表示i时刻能力值为j的最大滑雪数 显然f[0][1]=0,开始搜索 三种转移: ①美美的喝上一杯**:f[i+1][j]=max(f[i+1][j],f[i][j]) ②滑雪,f ...
- [USACO2009 OPEN] 滑雪课 Ski Lessons
洛谷P2948 看到题目就觉得这是动规但一直没想到如何状态转移……看了别人的题解之后才有一些想法 f[i][j]:前i单位时间能力值为j可以滑的最多次数 lessons[i][j]:结束时间为i,获得 ...
- BZOJ 1571: [Usaco2009 Open]滑雪课Ski
Description Farmer John 想要带着 Bessie 一起在科罗拉多州一起滑雪.很不幸,Bessie滑雪技术并不精湛. Bessie了解到,在滑雪场里,每天会提供S(0<=S& ...
- [bzoj1571][Usaco2009 Open]滑雪课Ski
题目描述 Farmer John 想要带着 Bessie 一起在科罗拉多州一起滑雪.很不幸,Bessie滑雪技术并不精湛. Bessie了解到,在滑雪场里,每天会提供S(0<=S<=100 ...
- 【贪心优化dp决策】bzoj1571: [Usaco2009 Open]滑雪课Ski
还有贪心优化dp决策的操作…… Description Farmer John 想要带着 Bessie 一起在科罗拉多州一起滑雪.很不幸,Bessie滑雪技术并不精湛. Bessie了解到,在滑雪场里 ...
- BZOJ——1571: [Usaco2009 Open]滑雪课Ski
http://www.lydsy.com/JudgeOnline/problem.php?id=1571 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: ...
- 1571. [Usaco2009 Open]滑雪课Ski
传送门 可以想到 $dp$,设 $f[i][j]$ 表示当前等级为 $i$,时间为 $j$ 的最大滑雪次数 显然上课不会上让自己等级降低的课,所以第一维 $i$ 满足无后效性 然后直接枚举 $i,j$ ...
- bzoj千题计划156:bzoj1571: [Usaco2009 Open]滑雪课Ski
http://www.lydsy.com/JudgeOnline/problem.php?id=1571 DP不一定全部全状态转移 贪心的舍去一些不合法的反而更容易转移 在一定能力范围内,肯定滑雪所需 ...
随机推荐
- MySQL mysqldump 备份脚本(按照db.sql)
mysqldump逻辑备份,按照db.sql文件区分,并压缩 #! /bin/bash #35 02 * * * mysql /data/mysqldata/scripts/mysqldump_per ...
- Mysql教程:[1]下载安装配置详细教程
如果不小心你下载了免安装的mysql,那么你比较倒霉,你找不到setup文件,还得自己去配置很多东西,然后再使用命令安装.所以我今天呢写一篇教程,写的尽量详细,即便是菜鸟也能安装,我自己安装过很多遍了 ...
- 三种web性能压力测试工具
三种web性能压力测试工具http_load webbench ab小结 题记:压力和性能测试工具很多,下文讨论的是我觉得比较容易上手,用的比较多的三种 http_load 下载地址:http://w ...
- windows cmd for paramiko
wmic cpu get LoadPercentage wmic memphysical list brief wmic memphysical get MaxCapacity 主板芯片组支持最 ...
- 基于Flask框架的Python web程序的开发实战 <一> 环境搭建
最近在看<Flask Web开发基于Python的Web应用开发实战>Miguel Grinberg著.安道译 这本书,一步步跟着学习Flask框架的应用,这里做一下笔记 电脑只安装一个P ...
- centos7虚拟机桥接上网(DHCP)
centos设置成自动获取ip地址方式(DHCP) 1.打开终端查看网卡信息 #ifconfigifcfg-enp0s3lovirbro 2.编辑文件#vim /etc/sysconfig/netwo ...
- activity状态保存的bundl对象存放位置的思考
我们知道,当activity被异常终止时,可以把一些信息保存到bundle对象中,在下次启动时恢复. 那么,这个bundle对象是保存在哪里的呢? 这种状态保存的方法针对的是activity而不是进程 ...
- 如何设置Win10文件资源管理器默认打开“这台电脑”
摘录自:http://www.ithome.com/html/win10/126066.htm
- __tostring和__invoke 方法
首先放上代码: <?php class MagicTest{ //__tostring会在把对象转换为string的时候自动调用 public function __tostring() { r ...
- schedule与scheduleAtFixedRate比较
schedule与scheduleAtFixedRate: 不延时: schedule(TimerTask, Date runDate, long period)方法任务不延时----Date类型 i ...