[USACO09DEC]雪橇Bobsledding(贪心)
https://www.luogu.org/problem/P2968
题目描述
Bessie will push off the starting line at 1 meter per second, but her speed can change while she rides along the course. Near the middle of every meter Bessie travels, she can change her speed either by using gravity to accelerate by one meter per second or by braking to stay at the same speed or decrease her speed by one meter per second.
Naturally, Bessie must negotiate N (1 <= N <= 100,000) turns on the way down the hill. Turn i is located Ti meters from the course start (1 <= Ti <= L-1), and she must be enter the corner meter at a speed of at most Si meters per second (1 <= Si <= 1,000,000,000). Bessie can cross the finish line at any speed she likes.
Help Bessie learn the fastest speed she can attain without exceeding the speed limits on the turns.
贝茜从山顶滑雪到山脚,山顶到山脚距离是L(2<L<10^9)米.贝茜在起点的速度是1米每秒,但是他的速度是可以改变的,在每一米的速度可以是前一米的速度加1、减1,或者等于前一米的速度.在滑行的过程中,贝茜会遇到N<=100000)个转弯处,第i个转弯处位于距离出发Ti米处,为了安全,贝茜到达第i个转弯处的速度不能超过Si(1<Si<10^9)米 每秒.当然贝茜到达终点时的速度没有最大限制.请你计算贝茜在滑雪过程中最大的速度可以是多少?Consider this course with the meter markers as integers and the turn speed limits in brackets (e.g., '[3]'):
| []
|---+---+---+---+---+---+---+
| \
Start +
\
+
\
+ +++ (finish)
\ /
[] +---+---+
[] Below is a chart of Bessie's speeds at the beginning of each meter length of the course:
Max:
Mtrs:
Spd: Her maximum speed was near the beginning of meter .
输入描述:
* Line 1: Two space-separated integers: L and N
* Lines 2..N+1: Line i+1 describes turn i with two space-separated integers: Ti and Si
输出描述:
* Line 1: A single integer, representing the maximum speed which Bessie can attain between the start and the finish line, inclusive.
输入
输出
100000的数据规模显然很难区间DP,于是我们考虑贪心。
这题的特性:速度变化量为±1或0。
对于每个拐角,经过它的速度的最大限制(既要小于题目给出的安全限制,又要确保后面的拐角能够顺利通过)。
知道这个之后,我们就可以从前往后模拟,计算出每两个拐角之间的速度最大值(不要忘了还有起点和终点),以及到达拐角时的速度。
计算最大速度值要用点脑子(自己试着推下,或参考代码)
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>
#include <math.h>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <math.h>
const int INF=0x3f3f3f3f;
typedef long long LL;
const int mod=1e9+;
const double PI=acos(-);
const int maxn=;
using namespace std;
//ios::sync_with_stdio(false);
// cin.tie(NULL); int l,n,ans;
struct node
{
int dis;//限制点的坐标
int speed;//限制速度
}limit[maxn]; bool cmp(node a,node b)
{
return a.dis<b.dis;
} int main()
{
scanf("%d %d",&l,&n);
for(int i=;i<=n;i++)
{
scanf("%d %d",&limit[i].dis,&limit[i].speed);
}
sort(limit+,limit++n,cmp);//不知道数据是不是按距离输入的,保险起见排个序 for(int i=n;i>=;i--)//反着更新速度限制
{
limit[i-].speed=min(limit[i-].speed,limit[i].speed+limit[i].dis-limit[i-].dis);
}
ans=;//答案
int s=;//速度值
for(int i=;i<=n;i++)
{
int d1=limit[i].speed-s;
int d2=limit[i].dis-limit[i-].dis;
if(d1<d2)
{
ans=max(ans,limit[i].speed+(d2-d1)/);
s=limit[i].speed;
}
else
{
ans=max(ans,s+d2);
s+=d2;
}
}
//注意最后一段是可以一直加速的,别忘了再比较一次
s+=l-limit[n].dis;
ans=max(ans,s);
printf("%d\n",ans);
return ;
}
[USACO09DEC]雪橇Bobsledding(贪心)的更多相关文章
- Luogu P2970 [USACO09DEC]自私的放牧
https://www.luogu.org/problemnew/show/P2970 P2970 [USACO09DEC]自私的放牧 题目描述 Each of Farmer John's N (1 ...
- 洛谷 P2970 [USACO09DEC]自私的放牧Selfish Grazing
P2970 [USACO09DEC]自私的放牧Selfish Grazing 题目描述 Each of Farmer John's N (1 <= N <= 50,000) cows li ...
- BZOJ 1692: [Usaco2007 Dec]队列变换 [后缀数组 贪心]
1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1383 Solved: 582[Submit][St ...
- HDOJ 1051. Wooden Sticks 贪心 结构体排序
Wooden Sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- BZOJ 1691: [Usaco2007 Dec]挑剔的美食家 [treap 贪心]
1691: [Usaco2007 Dec]挑剔的美食家 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 786 Solved: 391[Submit][S ...
- 【Codeforces 738D】Sea Battle(贪心)
http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...
- 【BZOJ-4245】OR-XOR 按位贪心
4245: [ONTAK2015]OR-XOR Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 486 Solved: 266[Submit][Sta ...
- code vs 1098 均分纸牌(贪心)
1098 均分纸牌 2002年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 有 N 堆纸牌 ...
随机推荐
- CCCC 红色警报
题意: 战争中保持各个城市间的连通性非常重要.本题要求你编写一个报警程序,当失去一个城市导致国家被分裂为多个无法连通的区域时,就发出红色警报.注意:若该国本来就不完全连通,是分裂的k个区域,而失去一个 ...
- 13. react 基础 redux 的基本介绍 及 用 antd 编写 TodoList 的样式
1. redux 简述 当 store 内的 数据进行变更的时候 多个组件感知到 store 内的数据变化 将会被自动更新 2. redux 工作流 Store 代表数据存储 (例如: 图书馆管理 ...
- a.e. almost everywhere i.e. 是拉丁语id est的缩写
a.e. : almost everywhere i.e.是拉丁语id est的缩写,意为“也就是说,与英文that is的意思一样
- Python Learning Day3
爬虫练习 说是练习,实际是尝试了一些还没有具体了解的方式吧hhhhh' 基于urllib实现 import urllib.request import re url="https://www ...
- VUE- 引用视频组件
VUE- 引用视频组件 安装依赖 cnpm install vue-video-player -S cnpm install video.js -S 全局引用: 在main.js中 import Vu ...
- UML-测试驱动开发
1.什么是测试驱动开发? 测试驱动开发(TDD)是迭代和敏捷XP方法提倡的优秀实践,该实践为测试测试优先开发.不仅包含单元测试. 2.为什么测试驱动开发? 1).最大提升代码稳定性 2).澄清接口和行 ...
- 主席树--动态区间第k小
主席树--动态区间第\(k\)小 模板题在这里洛谷2617. 先对几个问题做一个总结: 阅读本文需要有主席树的基础,也就是通过区间kth的模板题. 静态整体kth: sort一下找第k小,时间复杂度\ ...
- vue项目 首页开发 part3
da当拖动图标时候,只有上部分可以,下部分无响应 swiper 为根页面引用,其中的css为独立,点击swiper标签可以看见其包裹区域只有部分 那么需要修改 就需要穿透样式 外部 >> ...
- Python—数据结构——链表
数据结构——链表 一.简介 链表是一种物理存储上非连续,数据元素的逻辑顺序通过链表中的指针链接次序,实现的一种线性存储结构.由一系列节点组成的元素集合.每个节点包含两部分,数据域item和指向下一个节 ...
- 洛谷 P1379 八数码难题(map && 双向bfs)
题目传送门 解题思路: 一道bfs,本题最难的一点就是如何储存已经被访问过的状态,如果直接开一个bool数组,空间肯定会炸,所以我们要用另一个数据结构存,STL大法好,用map来存,直接AC. AC代 ...