浅谈\(RMQ\):https://www.cnblogs.com/AKMer/p/10128219.html

题目传送门:https://lydsy.com/JudgeOnline/problem.php?id=1067

关于\(RMQ\)的部分应该是很裸的了,这题难在分类讨论上。

顺带推销一波我的杀蚂蚁猪国杀

模拟题不难的。

时间复杂度:\(O(nlogn+m)\)

空间复杂度:\(O(nlogn)\)

代码如下:

#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std; const int maxn=5e4+11; int n,m;
int f[17][maxn];
int year[maxn],rain[maxn],Log[maxn]; int read() {
int x=0,f=1;char ch=getchar();
for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;
for(;ch>='0'&&ch<='9';ch=getchar())x=x*10+ch-'0';
return x*f;
} void make_st() {
Log[0]=-1;
for(int i=1;i<=n;i++)
Log[i]=Log[i>>1]+1;
for(int i=1;i<17;i++)
for(int j=1;j+(1<<i)-1<=n;j++)
f[i][j]=max(f[i-1][j],f[i-1][j+(1<<(i-1))]);
} int query(int l,int r) {
if(r<l)return 0;
int x=Log[r-l+1];
return max(f[x][l],f[x][r-(1<<x)+1]);
} int main() {
n=read();
for(int i=1;i<=n;i++)
year[i]=read(),f[0][i]=rain[i]=read();
make_st();m=read();
for(int i=1;i<=m;i++) {
int y=read(),x=read();
int posy=lower_bound(year+1,year+n+1,y)-year;
int posx=lower_bound(year+1,year+n+1,x)-year;
int mx=query(posy+(year[posy]==y),posx-1);
if(year[posy]!=y&&year[posx]!=x) {puts("maybe");continue;}
if(year[posy]==y&&year[posx]!=x) {
if(mx>=rain[posy]) {puts("false");continue;}
else {puts("maybe");continue;}
}
if(year[posy]!=y&&year[posx]==x) {
if(mx>=rain[posx]) {puts("false");continue;}
else {puts("maybe");continue;}
}
if(year[posy]==y&&year[posx]==x) {
if(rain[posy]<rain[posx]||mx>=rain[posx]) {puts("false");continue;}
else if(x-y!=posx-posy) {puts("maybe");continue;}
else {puts("true");continue;}
}
}
return 0;
}

最新文章

  1. C语言中struct位域的定义和使用
  2. iOS 10 都有什么改变?
  3. MySql MyISAM和InnoDB的区别
  4. python windows终端窗口下输出编码错误
  5. 用JSON-server模拟REST API(三) 进阶使用
  6. POJ 1988 Cube Stacking
  7. DB Cache Reloaded Fix缓存不能被激活解决方法
  8. 三角网格(Triangle Mesh)的理解
  9. SRM 581 D2 L2:SurveillanceSystem,重叠度
  10. linux不同环境下c/c++程序移植方法
  11. 新型勒索软件Magniber正瞄准韩国、亚太地区开展攻击
  12. 《Web Scraping With Python》Chapter 2的学习笔记
  13. ios入门OC_UI晋级学什么?
  14. Ocelot.JwtAuthorize:一个基于网关的Jwt验证包
  15. Learning-Python【34】:进程之生产者消费者模型
  16. python:异常处理、自定义异常、断言
  17. buildroot 编译问题
  18. 使用Delve进行Golang代码的调试
  19. OPENCV 常用函数
  20. QT的配置及目录结构

热门文章

  1. fedora找开ftpd服务器并以root登陆
  2. 摇一摇js代码
  3. Django 之 admin组件使用&amp;源码解析
  4. TextView属性
  5. SAP 物料 移动类型
  6. python基础21 ------python基础之socket编程
  7. eclipse---个人设置
  8. 教你如何写一个 Yii2 扩展
  9. [转]eclipse中的常用快捷键
  10. 字典树 HDU 1075 What Are You Talking About