bzoj 1067 分情况讨论
这道题考察人的严谨,各种情况分类讨论。
#include <cstdio>
#include <algorithm>
#include <map>
#define maxn 50010
#define maxq 17
#define P(i) (1<<(i))
#define yes 0
#define no 1
#define maybe 2
using namespace std; int n, q;
int year[maxn];
int st[maxn][maxq]; int ind( int y ) {
return (lower_bound( year+, year+n+, y ) - year);
}
void makest() {
for( int q=; q<maxq; q++ )
for( int i=; i<=(n-P(q)+); i++ )
st[i][q] = max( st[i][q-], st[i+P(q-)][q-] );
}
int fmax( int lf, int rg ) {
int len = rg-lf+;
if( len<= ) return -;
for( int q=maxq-; q>=; q-- )
if( len>P(q) ) {
return max( st[lf][q], st[rg-P(q)+][q] );
} else if( len==P(q) ) {
return st[lf][q];
}
return -;
}
int main() {
scanf( "%d", &n );
year[n+] = 0x7FFFFFFF;
for( int i=; i<=n; i++ )
scanf( "%d%d", year+i, &st[i][] );
makest();
sort( year+, year++n );
scanf( "%d", &q );
while( q-- ) {
int a, b, ia, ib;
scanf( "%d%d", &a, &b );
ia = ind(a), ib = ind(b);
if( year[ia]==a && year[ib]==b && b-a==ib-ia && st[ia][]>=st[ib][] && fmax(ia+,ib-)<st[ib][] ) {
printf( "true\n" );
continue;
}
if( year[ia]==a && year[ib]==b && b-a>ib-ia && st[ia][]>=st[ib][] && fmax(ia+(year[ia]==a),ib-)<st[ib][] ) {
printf( "maybe\n" );
continue;
}
if( ((year[ia]==a)^(year[ib]==b)) && fmax(ia+(year[ia]==a),ib-)< (year[ia]==a ? st[ia][] : st[ib][]) ) {
printf( "maybe\n" );
continue;
}
if( year[ia]!=a && year[ib]!=b ) {
printf( "maybe\n" );
continue;
}
printf( "false\n" );
}
}
bzoj 1067 分情况讨论的更多相关文章
- UESTC 1034 AC Milan VS Juventus 分情况讨论
AC Milan VS Juventus Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Oth ...
- HNU 12833 Omar’s Bug(分情况讨论)
题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12833&courseid=268 解题报告:有个11个 ...
- Valid Number——分情况讨论最经典的题(没细看)——这题必须静下心来好好看看
Validate if a given string is numeric. Some examples: "0" => true " 0.1 " =&g ...
- bzoj 1067: [SCOI2007]降雨量
题目链接: bzoj 1067: [SCOI2007]降雨量 题解: 很简单的一道题,但代码里有许多细节需要注意,切容易出错,调了三个小时OTZ 做一个st表维护区间最大值就 在获得年份在序列中的po ...
- bzoj2756: [SCOI2012]奇怪的游戏(网络流+分情况)
2756: [SCOI2012]奇怪的游戏 题目:传送门 题解: 发现做不出来的大难题一点一个网络流 %大佬 首先黑白染色(原来是套路...)染色之后就可以保证每次操作都一定会使黑白各一个各自的值加1 ...
- BZOJ 1067 降雨量(RMQ-ST+有毒的分类讨论)
1067: [SCOI2007]降雨量 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 4399 Solved: 1182 [Submit][Stat ...
- HDU6444(子段和、分情况比较)
要点 不难想到gcd一下然后枚举每个开头走一圈,并记录一下数值. 最终答案是分情况的:1.能走几圈走几圈然后加上最后剩余的最大子段和:2.也可能是最后一圈后面的拖后腿了,所以最后一圈没走完就停,即长度 ...
- bzoj 1067: [SCOI2007]降雨量 模擬
1067: [SCOI2007]降雨量 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2010 Solved: 503[Submit][Status] ...
- CONTINUE...?模拟分情况
CONTINUE...? DreamGrid has classmates numbered from to . Some of them are boys and the others are ...
随机推荐
- python作业Select版本FTP(第十周)
SELECT版FTP: 使用SELECT或SELECTORS模块实现并发简单版FTP 允许多用户并发上传下载文件 思路解析: 1. 使用IO多路复用的知识使用SELECTORS封装好的SELECTOR ...
- D - Keiichi Tsuchiya the Drift King Gym - 102028D (几何)
题目链接:https://cn.vjudge.net/contest/275150#problem/D 题目大意: 问你能满足那个矩形可以顺利通过的条件,然后求出最小的w 具体思路:首先,我们应该将情 ...
- Android SDK的安装与环境变量的配置
配置Andriod环境变量前提是要先安装好JAVA环境 1.下载Android SDK,点击安装,放在任意不含空格.特殊符号和中文的路径即可. 2.默认路径安装后,安装完成,开始配置环境变量. 3.打 ...
- spring web 生命周期理解
spring web /bean 生命周期 反射注解 aop代理类生成 init servlet 初始化 load spring-context.xml load XmlParser 类解析对象 ...
- Lempel-Ziv algorithm realization
Lempel-Ziv 复杂度程序 随着人们对非线性方法的分析越加深入,他们发现,虽然关联维度和最大李雅谱诺夫指数在分析脑电时具有一定的帮助,但是它们对数据的依赖性太强,对干扰和噪 声太敏感,而且要得到 ...
- PostGIS 操作geometry方法
WKT定义几何对象格式: POINT(0 0) ——点 LINESTRING(0 0,1 1,1 2) ——线 POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2 ...
- CentOS系统yum源配置修改、yum安装软件包源码包出错解决办法apt.sw.be couldn't connect to host
yum安装包时报错: Could not retrieve mirrorlist http://mirrorlist.repoforge.org/el6/mirrors-rpmforge error ...
- systemd基础
systemd 起源 systemd这一名字源于Unix中的一个惯例:在Unix中常以“d”作为系统守护进程(英语:daemon,亦称后台进程)的后缀标识.除此以外,systemd亦是借代英文术语D体 ...
- 洛谷P1319压缩技术 题解
题目传送门 这道题是入门难度的题.特别水...QWQ...... #include<bits/stdc++.h> using namespace std; *],top; int main ...
- day6 os模块
OS模块 提供对操作系统进行调用的接口 (1)os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 >>> os.getcwd() 获取 ...