luogu P3522 [POI2011]TEM-Temperature
这道题暴力做法就是枚举每个起点,然后向后拓展到不能拓展
就像这样
(红框是每个位置的取值范围,绿线是你取的值构成的折线)
应该可以发现,左端点往右移的过程中,右端点也只能不动或往右移,所以我们可以每次移动右端点,然后移动左端点直到合法
如果现在取出来了一个合法区间,加入下一个右端点,合法条件当且仅当当前区间右端所取的值不超过新加入的右端点的上界.所以我们可以在左端点右移的过程中,维护右边取值的变化(有点迷是不是)
我们可以开一个单调不降的单调队列维护区间内每个位置的取值到该位置的下界的大小,如果队首被弹出,那么区间内所有取值都可以下降队首元素大小那么多.那么在开个外部变量表示队列中元素的偏移量(参考P1486 [NOI2004]郁闷的出纳员,最好充分理解那道题,不然你就应该看不懂此篇题解)
具体参考代码 看不懂系列
// luogu-judger-enable-o2
#include<bits/stdc++.h>
#define il inline
#define re register
#define LL long long
#define max(a,b) ((a)>(b)?(a):(b))
#define inf 1111111111
namespace IO{...} //io读入模板,太长了,所以不放出来
using namespace std;
using namespace IO;
const int N=1000000+10;
int n,a[N][2],ans,hd=1,tl=0;
LL q[N][2],ff=0;
int main()
{
Input(n);
for(re int i=1;i<=n;i++) Input(a[i][0]),Input(a[i][1]);
for(re int l=1,r=1,x=a[1][0];r<=n;r++)
{
while(l<r&&x>a[r][1])
{
if(hd<=tl&&q[hd][0]<=l) x-=q[hd][1]+ff,ff-=q[hd][1]+ff,++hd;
if(hd<=tl) x-=q[hd][1]+ff,ff-=q[hd][1]+ff; //这里似乎有点多余(雾)
++l;
}
if(hd>tl) x=-inf;
if(x<a[r][0]) x=a[r][0];
LL y=x-a[r][0]-ff;
while(hd<=tl&&y<q[tl][1]) --tl;
q[++tl][0]=r,q[tl][1]=y;
ans=max(ans,r-l+1);
}
Print(ans);
Flush();
return 0;
}
luogu P3522 [POI2011]TEM-Temperature的更多相关文章
- Luogu P3521 [POI2011]ROT-Tree Rotations
题目链接 \(Click\) \(Here\) 线段树合并,没想到学起来意外的很简单,一般合并权值线段树. 建树方法和主席树一致,即动态开点.合并方法类似于\(FHQ\)的合并,就是把两棵树的信息整合 ...
- 【P3522】TEM(单调队列+DP)
这个题,题目很长,然而亲爱的翻译已经帮你读完题了,一句话题意. 要求不下降的最长,那么这一段肯定满足队首的左区间不大于队尾的右区间,单调队列容易求解. #include<iostream> ...
- Luogu 3521 [POI2011]ROT-Tree Rotations
BZOJ 2212 从下到上线段树合并. 考虑到每一个子树内部产生的贡献不可能通过换儿子消除,所以一次更换只要看看把哪个儿子放在左边产生的逆序对数少就可以了. 逆序对数可以在线段树合并的时候顺便算出来 ...
- Luogu P3527 [POI2011]MET-Meteors 整体二分
思路:整体二分 提交:4次 错因:树状数组开的$int$ 题解: 二分操作序列,将仅用$[l,md]$即可满足要求的国家递归到左半边,将仅用$[l,md]$不能满足要求的国家,把他们的要求去掉左半边的 ...
- Luogu P3520 [POI2011]SMI-Garbage
题目 把要变边权的边拿出来找欧拉回路就行了.正确性显然,因为一条边经过两次相当于对欧拉回路度数的奇偶性没有影响. 然后把一个个小环输出即可,具体的我也不知道怎么输,题目没讲清楚,我按着题解的来的. # ...
- python基础学习1-描述符
#!/usr/bin/env python # -*- coding:utf-8 -*- #描述符就是将某种特殊类型的类的实例指派给另一个类的属性 #特殊类型指 实现了 # __get__(self, ...
- 在js中使用Razor
@foreach (var tem in Model) { <text> time.push("@tem.CreateTime.ToString("G")&q ...
- BZOJ2276: [Poi2011]Temperature
2276: [Poi2011]Temperature Time Limit: 20 Sec Memory Limit: 32 MBSubmit: 293 Solved: 117[Submit][S ...
- [POI2011]Temperature
Description The Byteotian Institute of Meteorology (BIM) measures the air temperature daily. The mea ...
随机推荐
- 好消息,Manjaro Linux 18 已正式发布!
导读 Manjaro Linux 18 已正式发布!Xfce 版本仍然是旗舰,Manjaro 为其提供了优雅且领先的集成体验.这一版本搭载 Xfce 4.13. 这一版本主要专注于在桌面和窗口管理器上 ...
- BZOJ3597 SCOI2014方伯伯运椰子(分数规划+spfa)
即在总流量不变的情况下调整每条边的流量.显然先二分答案变为求最小费用.容易想到直接流量清空跑费用流,但复杂度略有些高. 首先需要知道(不知道也行?)一种平时基本不用的求最小费用流的算法——消圈法.算法 ...
- wamp下var_dump()相关问题
PHP 使用var_dump($arr)时 没有格式化输出. 原因是没有启用‘XDebug’扩展 [xdebug]zend_extension ="d:/wamp/bin/php/php7. ...
- Studio启动的时候报错 Could not install Gradle distribution from
安装了studio以后,直接点击[Start]报如下错,绝对不是网络的问题. Could not install Gradle distribution from 'https://services. ...
- 洛谷P2900 [USACO08MAR]土地征用Land Acquisition(动态规划,斜率优化,决策单调性,线性规划,单调队列)
洛谷题目传送门 用两种不一样的思路立体地理解斜率优化,你值得拥有. 题意分析 既然所有的土地都要买,那么我们可以考虑到,如果一块土地的宽和高(其实是蒟蒻把长方形立在了平面上)都比另一块要小,那么肯定是 ...
- jasperReport和Ireport
<!-- groovy --> <dependency> <groupId>org.codehaus.groovy</groupId> <arti ...
- 自学Aruba6.2-控制器基本维护操作(web页面配置)
点击返回:自学Aruba之路 自学Aruba6.2-控制器基本维护操作(web页面配置) 1 显示当前控制器版本 Dashboard---Controller中 2 升级Aruab os版本 Main ...
- 自学Python2.1-基本数据类型-字符串方法 下
自学Python之路 自学Python2.1-基本数据类型-字符串方法 下 class str(object): """ str(object='') -> str ...
- hive hadoop 大数据初探
一.环境搭建: 1.安装虚拟机,mac 系统推荐parallels:直接转化讲师发的xmdl后缀名的文件:里面自带了环境: 注意事项:mac 本机和虚拟机中centos 的通讯,需要修改centos中 ...
- 使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
碰到问题:移动用户访问web服务器www.osyunwei.com很慢解决办法:1.在移动机房放置一台nginx反向代理服务器2.通过域名DNS智能解析,所有移动用户访问www.osyunwei.co ...