2022春每日一题:Day 21


题目:[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的更多相关文章
- <每日一题>题目21:简单的python练习题(21-30)
#21.cookie和session的区别 ''' 1.cookie数据存放在客户的浏览器上,session数据存放在服务器上 2.cookie不是很安全,可以通过分析本地cookie组成伪造cook ...
- CISP/CISA 每日一题 21
CISSP 每日一题(答)What is the term that identifies data ona disk after the data has supposedly been erase ...
- 老男孩IT教育-每日一题汇总
老男孩IT教育-每日一题汇总 第几天 第几周 日期 快速访问链接 第123天 第二十五周 2017年8月25日 出现Swap file….already exists以下错误如何解决? 第122天 2 ...
- CISP/CISA 每日一题 九(2017-11-30 09:25)
电子银行风险管理责任: 1.风险管理是董事会和高级管理层的责任 2.实施技术是信息技术高级管理层的责任 3.测量和监控风险是经营管理层的责任 管理层在实施一个新的电子银行应用程序之前要 ___ ...
- [每日一题]面试官问:for in和for of 的区别和原理?
关注「松宝写代码」,精选好文,每日一题 时间永远是自己的 每分每秒也都是为自己的将来铺垫和增值 作者:saucxs | songEagle 一.前言 2020.12.23 日刚立的 flag,每日一 ...
- 【JavaScript】【dp】Leetcode每日一题-解码方法
[JavaScript]Leetcode每日一题-解码方法 [题目描述] 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : 'A' -> 1 'B' -> 2 ... 'Z' -& ...
- 【Java每日一题】20170106
20170105问题解析请点击今日问题下方的"[Java每日一题]20170106"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170105
20170104问题解析请点击今日问题下方的"[Java每日一题]20170105"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170104
20170103问题解析请点击今日问题下方的"[Java每日一题]20170104"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
- 【Java每日一题】20170103
20161230问题解析请点击今日问题下方的"[Java每日一题]20170103"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...
随机推荐
- python 中matplotlib 绘图
python 中matplotlib 绘图 数学建模需要,对于绘图进行简单学习 matpoltlib之类的包安装建议之间用anaconda 绘制一条y=x^2的曲线 #比如我们要绘制一条y=x^2的曲 ...
- KingbaseES R3 集群一键修改集群用户密码案例
案例说明: 在KingbaseES R3集群的最新版本中增加了kingbase_monitor.sh一键修改集群用户密码的功能,本案例是对此功能的测试. kingbaseES R3集群一键修改密码说明 ...
- eclipse 统一设置编码_项目工程统一设置成utf8编码_eclipse代码规范
在做项目的时候文件有的时候编码不同一 经常出现乱码,eclipse统一设置编码 可以解决项目编码混乱的问题, 设置eclipse java,jsp,css,js文件编码的方法如下: 1.在工具栏中点击 ...
- 互联网公司员工职级、研发效能度量、OKR与绩效考核
今天要写这篇文章,来自最近有两个点触动了我.第一个触动点是奈飞(netflix)做出了一个巨大动作<"不搞职级.人人平等" 25 年后行不通了?Netflix 破天荒引入细分 ...
- Kubernetes Operator: Operator
Operator 就可以看成是 CRD 和 Controller 的一种组合特例,Operator 是一种思想,它结合了特定领域知识并通过 CRD 机制扩展了 Kubernetes API 资源,使用 ...
- mysql8.0.25版本设置主从数据库,并且从库只读
具体操作步骤 说明:主从数据库版本一致 1.主库创建同步使用的用户 create user 'repl'@'%' identified with 'mysql_native_password' by ...
- 路径参数和数值校验: Path_Parameters_and_Numeric_Validations
官方文档地址: https://fastapi.tiangolo.com/zh/tutorial/path-params-numeric-validations/ # -*- coding: UTF- ...
- Elasticsearch与MySQL对应关系表
MySQL 中的数据库(DataBase),等价于 ES 中的索引(Index). MySQL 中一个数据库下面有 N 张表(Table),等价于1个索引 Index 下面有 N 多类型(Type). ...
- 彻底掌握Makeifle(三)
彻底掌握Makeifle(三) 前言 在前面的文章彻底掌握Makefile(一)和彻底掌握Makefile(二)当中,我们简要的介绍了一些常见的makefile使用方法,在本篇文章当中我们将继续介绍一 ...
- 第一周python作业
print("hello world") height=float(input("请输入你的身高:")) weight=float(input("请输 ...