P2698 [USACO12MAR]花盆Flowerpot

一看标签........十分后悔

标签告诉你单调队列+二分了............

每次二分花盆长度,蓝后开2个单调队列维护最大最小值

蓝后就是code了

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
inline int Max(int a,int b){return a>b?a:b;}
void read(int &x){static char c=getchar();x=0;while(c<'0'||c>'9') c=getchar();while('0'<=c&&c<='9') x=x*10+(c^48),c=getchar();
}
#define N 100005
struct data{int x,y;}a[N];
inline bool cmp(data A,data B){return A.x<B.x;}
int n,d,h1[N],h2[N],L1,R1,L2,R2;
bool check(int len){int re=0; L1=L2=1; R1=R2=0;for(int i=1;i<=n;++i){while(L1<=R1&&a[h1[L1]].x<a[i].x-len) ++L1;while(L2<=R2&&a[h2[L2]].x<a[i].x-len) ++L2;while(L1<=R1&&a[h1[R1]].y>=a[i].y) --R1;while(L2<=R2&&a[h2[R2]].y<=a[i].y) --R2;h1[++R1]=h2[++R2]=i;re=Max(re,a[h2[L2]].y-a[h1[L1]].y);}return re<d;
}
int main(){read(n);read(d);for(int i=1;i<=n;++i) read(a[i].x),read(a[i].y);sort(a+1,a+n+1,cmp);int l=1,r=1000000;while(l<r){int mid=(l+r)>>1;if(check(mid)) l=mid+1;else r=mid;}if(check(l)) puts("-1");else printf("%d",l);return 0;
}

转载于:https://www.cnblogs.com/kafuuchino/p/10581123.html

P2698 [USACO12MAR]花盆Flowerpot(单调队列+二分)相关推荐

  1. 洛谷 P2698 [USACO12MAR]花盆Flowerpot 单调队列

    https://www.luogu.org/problemnew/show/P2698 题意中文的不说了: 做法:就是一个滑动区间维护最大值和最小值,首先,了解一条性质,对于满足要求的两个区间 (l1 ...

  2. P2698 [USACO12MAR]花盆Flowerpot 单调队列

    https://www.luogu.org/problemnew/show/P2698 警示 用数组写双端队列的话,记得le = 1, ri = 0: le<=ri表示队列非空 题意 求一个最小 ...

  3. luogu 2698 [USACO12MAR]花盆Flowerpot 单调队列

    刷水~ Code: #include<bits/stdc++.h> using namespace std; #define setIO(s) freopen(s".in&quo ...

  4. 洛谷P2698 [USACO12MAR]花盆Flowerpot

    P2698 [USACO12MAR]花盆Flowerpot 题目描述 Farmer John has been having trouble making his plants grow, and n ...

  5. [洛谷P2698] [USACO12MAR]花盆Flowerpot

    洛谷题目链接:[USACO12MAR]花盆Flowerpot 题目描述 Farmer John has been having trouble making his plants grow, and ...

  6. luogu P2698 [USACO12MAR]花盆Flowerpot

    背景: 集训Day3Day3Day3,单调队列开启. 其实原来就会,但是好像没做几题(除了斜率优化的). 打算用111至222天做一些题(太菜,大佬勿喷). rank=20000+rank=20000 ...

  7. 洛谷 P2698 [USACO12MAR]花盆Flowerpot(抄)

    题目描述 Farmer John has been having trouble making his plants grow, and needs your help to water them p ...

  8. P2698 [USACO12MAR]花盆Flowerpot

    传送门 看到求最小,考虑二分答案 发现二分答案后直接搞两个单调队列维护最大最小值就好了 然后就没有然后了 话说这题也可以用尺取法动态维护左右区间$O(n)$过... #include<iostr ...

  9. [P2698][USACO12MAR]花盆Flowerpot

    Link: P2698 传送门 Solution: 对于可行区间$[L,R]$,随着$L$的递增$R$不会递减 因此可以使用尺取法来解决此题:不断向右移动左右指针,复杂度保持线性 同时为了维护区间内的 ...

最新文章

  1. ui设计师要懂哪些B端设计原则?
  2. 软件开发人员维护代码指南
  3. ITK:手动遍历具有成形邻域的图像区域
  4. mysql 事件计划区别_MySQL 计划事件
  5. mariadb集群初次启动方法
  6. 在VMware开启此虚拟机时出现内部错误
  7. jquery ajax 异步分页,jquery 分页 Ajax异步
  8. Linux学习笔记(二):cd命令的使用
  9. Error:Elements in iteration expect to have ‘v-bind:key‘ directives
  10. 面对对象三大特性之一继承性。
  11. 读取肌电数据,构建模型训练数据
  12. OGRE实现纸娃娃系统
  13. 官方授权正版老牌截图工具 Ashampoo Snap 12 中文网站 屏幕截图与视频录制工具
  14. 一句话说明sync, fsync, fdatasync的区别
  15. 机械制图--零件图--过渡线
  16. 化妆品护肤DiY的广告界面 简单的jquery 图片无缝滚动
  17. 微信编辑器——构思编辑器教你如何学好图文排版
  18. 黑马程序员--java简介
  19. C语言学习笔记(浙大翁恺版)第一周
  20. bzoj4864 [BeiJing 2017 Wc]神秘物质

热门文章

  1. c++ 汉语转换成拼音
  2. ebs 供应商地点信息_EBS R12使用接口表往已存在的供应商地址下创建新的地点
  3. VBScript终极破产版石头剪刀布游戏(VBS语言实现)
  4. 好饭不怕晚 —— CSDN博客专家认证通过
  5. LADRC线性自抗扰,三阶ESO状态扩张观测器,boost升压电路,双闭环控制,双LADRC控制,电压外环采用LADRC线性自抗扰控制
  6. Windows平台七牛批量上传工具使用教程
  7. 2015异常问题解决方案经验总结(一)
  8. 区块链技术,模仿B特币,java模拟区块链技术,(摘自GitHub)
  9. 2019山东大学计算机类录取分数线,2020山东大学录取分数线一览表(含2018-2019历年)...
  10. python正则表达式替换excel_在 Excel 中使用正则表达式进行查找与替换