这道题考察人的严谨,各种情况分类讨论。

 #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 分情况讨论的更多相关文章

  1. UESTC 1034 AC Milan VS Juventus 分情况讨论

    AC Milan VS Juventus Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Oth ...

  2. HNU 12833 Omar’s Bug(分情况讨论)

    题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12833&courseid=268 解题报告:有个11个 ...

  3. Valid Number——分情况讨论最经典的题(没细看)——这题必须静下心来好好看看

    Validate if a given string is numeric. Some examples: "0" => true " 0.1 " =&g ...

  4. bzoj 1067: [SCOI2007]降雨量

    题目链接: bzoj 1067: [SCOI2007]降雨量 题解: 很简单的一道题,但代码里有许多细节需要注意,切容易出错,调了三个小时OTZ 做一个st表维护区间最大值就 在获得年份在序列中的po ...

  5. bzoj2756: [SCOI2012]奇怪的游戏(网络流+分情况)

    2756: [SCOI2012]奇怪的游戏 题目:传送门 题解: 发现做不出来的大难题一点一个网络流 %大佬 首先黑白染色(原来是套路...)染色之后就可以保证每次操作都一定会使黑白各一个各自的值加1 ...

  6. BZOJ 1067 降雨量(RMQ-ST+有毒的分类讨论)

    1067: [SCOI2007]降雨量 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 4399  Solved: 1182 [Submit][Stat ...

  7. HDU6444(子段和、分情况比较)

    要点 不难想到gcd一下然后枚举每个开头走一圈,并记录一下数值. 最终答案是分情况的:1.能走几圈走几圈然后加上最后剩余的最大子段和:2.也可能是最后一圈后面的拖后腿了,所以最后一圈没走完就停,即长度 ...

  8. bzoj 1067: [SCOI2007]降雨量 模擬

    1067: [SCOI2007]降雨量 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 2010  Solved: 503[Submit][Status] ...

  9. CONTINUE...?模拟分情况

    CONTINUE...? DreamGrid has  classmates numbered from  to . Some of them are boys and the others are ...

随机推荐

  1. bzoj 3522 tree-dp 暴力

    首先我们知道,这个题可以N^2的做,我们先确定一个根,然后讨论下情况,合法的三个点只可能有三种情况,第一种是三个点有相同的lca,这种情况我们可以用tree-dp来解决,用dis[i][j]表示i为根 ...

  2. 商城项目(ssm+dubbo+nginx+mysql统合项目)总结(3)

    我不会在这里贴代码和详细步骤什么的,我觉得就算我把它贴出来,你们照着步骤做还是会出很多问题,我推荐你们去看一下黑马的这个视频,我个人感觉很不错,一步一步走下来可以学到很多东西.另外,视频和相关文档的话 ...

  3. lspci 虚拟机网卡对应关系

    我这个办法有点笨: 到 /sys/devices/ 下去搜索网卡 eth*,找到网卡对应的PCI 总线位置,例如:05:00.0. 然后通过 "lspci -s 05:00.0" ...

  4. LCD驱动分析【转】

    转自:http://blog.csdn.net/hanmengaidudu/article/details/21559153 1.S3C2440上LCD驱动 (FrameBuffer)实例开发讲解 其 ...

  5. 百度地图js lite api 支持点聚合

    百度地图lite api 是专门为h5 绘制海量点设计的,但是偏偏忽略掉了点聚合的需求,所以需要自己动手,做一次二次改造. 我们知道点聚合需要引入开源库: MarkerClusterer:  http ...

  6. Android 开发笔记(二)菜单设计

    菜单设计一 // 创建菜单 public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 0, 0, "关于"); men ...

  7. [转载]C++多态技术

    摘自: http://www.royaloo.com/articles/articles_2003/PolymorphismInCpp.htm http://blog.sciencenet.cn/bl ...

  8. 利用Google API生成二维码

    什么是二维码:二维码是二维条形码的一种,可以将网址.文字.照片等信息通过相应的编码算法编译成为一个方块形条码图案,手机用户可以通过摄像头和解码软件将相关信息重新解码并查看内容.读取方式:利用30万画素 ...

  9. mysql delete 注意

    mysql中You can't specify target table <tbl> for update in FROM clause错误的意思是说,不能先select出同一表中的某些值 ...

  10. 看看PHP迭代器的内部执行过程

    class myIterator implements Iterator { private $position = 0; private $array = array( "first_el ...