题目:[SCOI2007]降雨量

这题比较坑,分几种情况,但是可以总起来说,分开写,两个月份都没出现,maybe,否则如果两个月份都大于[l+1,r-1]的最大值,如果两个月份差值=r-l输出,true,否则maybe,否则false

代码:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <unordered_map>
const int N = 5e4 + 5;
using namespace std;
int n, m, q, a[N], f[N][20], lg[N], e[N];
unordered_map <int,int> mp;
int ask(int l, int r)
{
if(l > r)
return 0;
int j = lg[r - l + 1];
if(a[f[l][j]] > a[f[r - (1<<j) +1][j]])
return f[l][j];
else
return f[r - (1<<j) + 1][j];
}
int main()
{
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
int x;
scanf("%d %d", &x, &a[i]);
mp[x] = i;
e[i] = x;
f[i][0] = i;
}
sort(e + 1, e + 1 + n);
m = unique(e + 1, e + 1 + n) - e - 1;
scanf("%d", &q);
for(int i = 2; i <= n; i++)
lg[i] = lg[i>>1] + 1;
for(int j = 1; (1<<j) <= n; j++)
for(int i = 1; i + (1<<j) - 1 <= n; i++)
{
if(a[f[i][j-1]]>a[f[i + (1<< (j-1))][j-1]])
f[i][j] = f[i][j-1];
else
f[i][j] = f[i + (1<< (j-1))][j-1];
}
while(q--)
{
int l = 0, r = 0, x, y;
scanf("%d %d", &x, &y);
if(x>y)
{
puts("false");
continue;
}
if(mp.count(x))
l = mp[x];
if(mp.count(y))
r = mp[y];
if(l == 0 && r == 0)
{
puts("maybe");
continue;
}
if(l == 0)
{
l = upper_bound(e + 1, e + 1 + n, x) - e;
int kk = ask(l, r - 1);
if(a[r] > a[kk])
puts("maybe");
else
puts("false");
continue;
}
if(r == 0)
{
r = lower_bound(e + 1, e + 1 + n, y) - e - 1;
int kk = ask(l + 1, r);
if(a[l] > a[kk])
puts("maybe");
else
puts("false");
continue;
}
int kk = ask(l + 1, r - 1);
if(a[l] < a[r] || a[r] <= a[kk] || a[l] <= a[kk])
puts("false");
else if(r - l == y - x)
puts("true");
else
puts("maybe");
}
return 0;
}

2022春每日一题:Day 21的更多相关文章

  1. <每日一题>题目21:简单的python练习题(21-30)

    #21.cookie和session的区别 ''' 1.cookie数据存放在客户的浏览器上,session数据存放在服务器上 2.cookie不是很安全,可以通过分析本地cookie组成伪造cook ...

  2. CISP/CISA 每日一题 21

    CISSP 每日一题(答)What is the term that identifies data ona disk after the data has supposedly been erase ...

  3. 老男孩IT教育-每日一题汇总

    老男孩IT教育-每日一题汇总 第几天 第几周 日期 快速访问链接 第123天 第二十五周 2017年8月25日 出现Swap file….already exists以下错误如何解决? 第122天 2 ...

  4. CISP/CISA 每日一题 九(2017-11-30 09:25)

    电子银行风险管理责任: 1.风险管理是董事会和高级管理层的责任 2.实施技术是信息技术高级管理层的责任 3.测量和监控风险是经营管理层的责任     管理层在实施一个新的电子银行应用程序之前要 ___ ...

  5. [每日一题]面试官问:for in和for of 的区别和原理?

    关注「松宝写代码」,精选好文,每日一题 ​时间永远是自己的 每分每秒也都是为自己的将来铺垫和增值 作者:saucxs | songEagle 一.前言 2020.12.23 日刚立的 flag,每日一 ...

  6. 【JavaScript】【dp】Leetcode每日一题-解码方法

    [JavaScript]Leetcode每日一题-解码方法 [题目描述] 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : 'A' -> 1 'B' -> 2 ... 'Z' -& ...

  7. 【Java每日一题】20170106

    20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  8. 【Java每日一题】20170105

    20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  9. 【Java每日一题】20170104

    20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  10. 【Java每日一题】20170103

    20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

随机推荐

  1. JavaWeb核心篇(2)——Request和Response

    JavaWeb核心篇(2)--Request和Response 上篇文章中提及到了Servlet,在Servlet中我们主要继承了HTTPServlet类,在HTTPServlet类中我们会接触到两个 ...

  2. 004-GoingDeeperConvolutions2014(googLeNet)

    Going Deeper with Convolutions #paper 1. paper-info 1.1 Metadata Author:: [[Christian Szegedy]], [[W ...

  3. 最强cron解析器

    背景 大家有没有这么一种困境 我现在需要去配置一个定时任务:"每天早上九点执行任务" 若你有一个好的定时任务平台,相信很容易就能配置完成.那若是没有定时任务平台呢?是不是就要自己写 ...

  4. Kubernetes 多租户:多租户介绍

    多租户集群由多个用户和/或工作负载共享,这些用户和/或工作负载被称为"租户".多租户集群的运营方必须将租户彼此隔离,以最大限度地减少被盗用的租户或恶意租户可能对集群和其他租户造成的 ...

  5. MySQL8更改数据存储目录

  6. 关于使用kuboard安装其自带的监控应用授权普通用户使用

    官方文档地址:https://www.kuboard.cn/guide/example/monitor-v2.html#授权用户访问套件

  7. 还不会Traefik?看这篇文章就够了!

    文章转载自:https://mp.weixin.qq.com/s/ImZG0XANFOYsk9InOjQPVA 提到Traefik,有些人可能并不熟悉,但是提到Nginx,应该都耳熟能详. 暂且我们把 ...

  8. Android类加载流程

    背景 由于前前前阵子写了个壳,得去了解类的加载流程,当时记了一些潦草的笔记.这几天把这些东西简单梳理了一下,本文分析的代码基于Android8.1.0源码. 流程分析 从loadClass开始,我们来 ...

  9. 关于aws-Lambda的cron周期性计划任务-表达式的定义方式

    关于aws-Lambda的cron周期性定时任务的定义方式,与其他系统或者语言可能略有差异 区别之一,就是Lambda是6个字段的, (分,时,日,月,周,年),多了一个年份字段,各字段之间使用空格隔 ...

  10. IDEA 调试起来太费劲?你需要了解这几招!

    各位好啊,我是会编程的蜗牛,我们在使用IDEA开发java项目时,经常需要用到IDEA的调试功能,不过平时我们用的调试方法可能过于简单了,其实IDEA还给我们提供了非常强大的调试功能,下面让我来看一看 ...