P2471 [SCOI2007] 降雨量

有3种结果

分析2种结果,其余就是剩下那个结果

True

1.x年存在

2.y年存在

3.中间都需要存在

4.中间的最大值要小于x年的降雨量 mx<ri[x]

5.ri[x]<=ri[y]

False

1.x年存在 mx>=ri[x]

2.y年存在 mx>=ri[y]

3.x年存在,y年存在 ri[x]>ri[y]

其余都是maybe

分析完每个结果的条件

获得条件

1.mx,区间最大值,线段树维护即可

2.中间都要存在,观察题目y[i]<y[i+1],单调性,那二分找index就好了

indexx-indexy==x-y那中间就都存在了

那这样处理就写完了

// Problem: [SCOI2007]降雨量
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/26896/1004
// Memory Limit: 524288 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N = 1e6+ 9;
int ye[N],ri[N];
//线段树
struct node{int mx;
}seg[N<<2];
inline ll tl(ll x){return x<<1;}
inline ll tr(ll x){return x<<1|1;}
bool inrange(int L,int R,int l,int r){return l<=L && R<=r;}
bool outofrange(int L,int R,int l,int r){return L>r || R<l;}
void pushup(int id){seg[id].mx=max(seg[tl(id)].mx,seg[tr(id)].mx);
}
ll query(int id,int L,int R,int l,int r){if(inrange(L,R,l,r)){return seg[id].mx;}else if(!outofrange(L,R,l,r)){int mid=(L+R)>>1;return max(query(tl(id),L,mid,l,r),query(tr(id),mid+1,R,l,r));}else{return 0;}   
}
void insert(int id,int l,int r,int pos,int v){if(l==r){seg[id].mx=v;return;}int mid=(l+r)>>1;if(mid>=pos){insert(tl(id),l,mid,pos,v);}else{insert(tr(id),mid+1,r,pos,v);}pushup(id);
}
int main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int n;cin>>n;for(int i=1;i<=n;i++){cin>>ye[i]>>ri[i];insert(1,1,n,i,ri[i]);}int m;cin>>m;for(int i=1;i<=m;i++){int y,x;cin>>y>>x;int indexy=lower_bound(ye+1,ye+1+n,y)-ye;int indexx=lower_bound(ye+1,ye+1+n,x)-ye;bool okx=false;bool oky=false;if(ye[indexy]==y){oky=true;}if(ye[indexx]==x){okx=true;}if(!oky){indexy--;}int mx=0;// cout<<indexx+1<<" "<<indexy-1<<'\n';if(indexy+1<=indexx-1){mx=query(1,1,n,indexy+1,indexx-1);}// cout<<mx<<'\n';if(okx && oky && x-y==indexx-indexy && mx<ri[indexx] && ri[indexx]<=ri[indexy]){cout<<"true"<<'\n';}else if((okx && mx>=ri[indexx]) || (oky && ri[indexy]<=mx) || (okx && oky && ri[indexx]>ri[indexy])){cout<<"false"<<'\n';}else{cout<<"maybe"<<'\n';}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/24884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端工程化:基于Vue.js 3.0的设计与实践

这里写目录标题 《前端工程化&#xff1a;基于Vue.js 3.0的设计与实践》书籍引言本书概述主要内容作者简介为什么选择这本书&#xff1f;结语 《前端工程化&#xff1a;基于Vue.js 3.0的设计与实践》书籍 够买连接—>https://item.jd.com/13952512.html 引言 在前端技术日…

菜品信息分页查询——后端SpringBoot

1.分页查询的逻辑&#xff1a; 页面发送ajax请求&#xff0c;将分页查询参数(page&#xff0c;pageSize, name)提交到服务端&#xff0c;获取分页数据&#xff1b; 页面发送请求&#xff0c;请求服务端进行图片下载&#xff0c;用于页面图片展示。 开发菜品信息分页查询功能&a…

python操作数据库,django操作数据库

安装驱动 pip install mysqlclient工程同名app下的settings.py DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: test,USER: root,PASSWORD: hirain123,HOST: localhost,PORT: 3306,OPTION; {init_command: SET sql_model"STRICT_TRANS_TABLES",}} …

数字人的技术实现方案比较

数字人的实现方案通常包括以下几个关键技术领域&#xff0c;数字人的实现是一个跨学科的领域&#xff0c;涉及到计算机图形学、人工智能、机器学习、自然语言处理等多个技术领域&#xff0c;随着技术的不断进步&#xff0c;数字人的能力和应用范围将不断扩大。北京木奇移动技术…

数仓开发:如何计算投放效果?

背景介绍 业务介绍&#xff1a;用户是通过低价引流进来&#xff0c;然后通过复购购买高价商品&#xff0c;可以多次购买。低价商品和高价商品均可以退款&#xff0c;高价商品由于各种复杂的场景&#xff0c;可能会有多次退款。低价商品如果退款是全退&#xff0c;不存在多次退…

【环境搭建】3.阿里云ECS服务器 安装Redis

在阿里云的 Alibaba Cloud Linux 3.2104 LTS 64位系统上安装 Redis 可以通过以下步骤完成&#xff1a; 1.更新系统软件包&#xff1a; 首先&#xff0c;更新系统软件包以确保所有软件包都是最新的&#xff1a; sudo yum update -y2.安装编译工具和依赖项&#xff1a; Redis…

使用树莓派和 L298N 来 DIY 小车底盘

树莓派小车可以作为 STEM&#xff08;科学、技术、工程、数学&#xff09;教育的工具&#xff0c;在实际操作中帮助学生理解和学习电子技术、编程和机器人原理。可以培养学生的动手能力、解决问题的能力和创新思维。 随着近年 AI 技术的高速发展&#xff0c;SLAM、VSLAM 甚至带…

2024儿科学中文核心期刊汇总,附投稿信息

第10版《中文核心期刊要目总览》入编了8本儿科学期刊&#xff0c;新入编的期刊是《临床小儿外科杂志》。常笑医学整理了儿科学核心期刊的详细参数&#xff0c;供大家在论文投稿时参考&#xff0c;有需要的赶紧收藏&#xff01; 1.《中华儿科杂志》 &#xff08;详细投稿信息请…

【NI国产替代】高速数据采集模块,最大采样率为 125 Msps,支持 FPGA 定制化

• 双通道高精度数据采集 • 支持 FPGA 定制化 • 双通道高精度采样率 最大采样率为 125 Msps12 位 ADC 分辨率 最大输入电压为 0.9 V -3 dB 带宽为 30 MHz 支持 FPGA 定制化 根据需求编程实现特定功能和性能通过定制 FPGA 实现硬件加速&#xff0c;提高系统的运算速度FPGA…

快速修改验证Sepolicy(Selinux)

一&#xff0c;判断是否为Sepolicy问题 Step1. 当某个进程出问题时&#xff0c;举个例子&#xff0c;比如so明明存在却无法link&#xff0c;那么看日志里是否有相关的avc&#xff1a; avc: denied { open } for path"/data/system/myapp.config" dev"dm-0&quo…

OpenCV学习(4.8) 图像金字塔

1.目的 在这一章当中&#xff0c; 我们将了解图像金字塔。我们将使用图像金字塔创建一个新的水果&#xff0c;“Orapple”我们将看到这些功能&#xff1a; cv.pyrUp&#xff08;&#xff09; &#xff0c; cv.pyrDown&#xff08;&#xff09; 在通常情况下我们使用大小恒定…

node的安装

node是前端开发环境&#xff0c;所以运行前端程序需要安装和配置node 1. 下载安装node 去node官网选择你需要的版本进行下载 Node.js — Download Node.js (nodejs.org) ​ 下载到本地后一路点击next傻瓜式安装&#xff0c;安装成功后测试是否安装成功 node -v 显示node版…

几种数据集格式

在机器学习和计算机视觉领域&#xff0c;有多种数据集格式被广泛使用来存储和交换数据&#xff0c;尤其是图像数据。以下是一些常见的数据集格式&#xff1a; JSON (JavaScript Object Notation): 一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;也易于机器…

【Ardiuno】使用ESP32网络功能调用接口数据(图文)

接着上文连通wifi后&#xff0c;我们通过使用HTTPClient库进行网络相关操作&#xff0c;这里我们通过http协议进行接口调用。 为了简化操作&#xff0c;这里使用了本地服务器上的文件作为接口&#xff0c;正常操作时会调用接口后&#xff0c;将服务器返回的数据进行解析&#…

白话解读网络爬虫

网络爬虫&#xff08;Web Crawler&#xff09;&#xff0c;也称为网络蜘蛛、网络机器人或网络蠕虫&#xff0c;是一种自动化程序或脚本&#xff0c;被用来浏览互联网并收集信息。网络爬虫的主要功能是在互联网上自动地浏览网页、抓取内容并将其存储在本地或远程服务器上供后续处…

独孤思维:高考那段日子,我痛不欲生

今天是高考日。 回想自己当年高考的情景&#xff0c;还历历在目。 备考那段时间&#xff0c;每天没日没夜做卷子。 惴惴不安&#xff0c;每天焦虑&#xff0c;不得安宁。 当时还在想&#xff0c;高考完了以后&#xff0c;要怎么怎么玩&#xff0c;怎么怎么野。 但是真的到…

【模拟-BM99 顺时针旋转矩阵】

题目 BM99 顺时针旋转矩阵 描述 有一个NxN整数矩阵&#xff0c;请编写一个算法&#xff0c;将矩阵顺时针旋转90度。 给定一个NxN的矩阵&#xff0c;和矩阵的阶数N,请返回旋转后的NxN矩阵。 分析 模拟&#xff0c;写几个样例&#xff0c;分析一下新矩阵元素下标与原矩阵元素…

游戏心理学Day08

从本质上讲&#xff0c;游戏是对现实世界规律的简化和明晰化&#xff0c;并以此为基础&#xff0c;对现实世界进行建模。通过游戏&#xff0c;我们认识到艰苦的工作原来就是 幸福的来源&#xff0c;只要工作目标明确&#xff0c;充满挑战&#xff0c;反馈及时和充满社会化合作…

python记录之字符串

在Python中&#xff0c;字符串是一种非常常见且重要的数据类型&#xff0c;用于存储文本信息。下面&#xff0c;我们将对Python字符串进行深入的讲解&#xff0c;包括其基本操作、常见方法、格式化以及高级特性。 1. 字符串的创建 在Python中&#xff0c;字符串可以通过单引号…

编译原理-语法分析(实验 C语言)

语法分析 1. 实验目的 编制一个递归下降分析程序&#xff0c;实现对词法分析程序所提供的单词序列的语法检查和结构分析 2. 实验要求 利用C语言编制递归下降分析程序&#xff0c;并对简单语言进行语法分析 2.1 待分析的简单语言的语法 用扩充的BNF表示如下&#xff1a; …