Problem Description
"Man, this year has the worst weather ever!", David said as he sat crouched in the small cave where we had sought shelter from yet another sudden rainstorm.
"Nuh-uh!", Diana immediately replied in her traditional know-it-all manner.
"Is too!", David countered cunningly. Terrific. Not only were we stuck in this cave, now we would have to listen to those two nagging for at least an hour. It was time to cut this discussion short.
"Big nuh-uh. In fact, 93 years ago it had already rained five times as much by this time of year."
"Duh", David capitulated, "so it's the worst weather in 93 years then."
"Nuh-uh, this is actually the worst weather in 23 years.", Diana again broke in.
"Yeah, well, whatever", David sighed, "Who cares anyway?".
Well, dear contestants, you care, don't you?
Your task is to, given information about the amount of rain during different years in the history of the universe, and a series of statements in the form "Year X had the most rain since year Y", determine whether these are true, might be true, or are false. We say that such a statement is true if:

The amount of rain during these two years and all years between them is known.

It rained at most as much during year X as it did during year Y.

For every year Z satisfying Y < Z < X, the amount of rain during year Z was less than the amount of rain during year X.

We say that such a statement might be true if there is an assignment of amounts of rain to years for which there is no information, such that the statement becomes true. We say that the statement is false otherwise.

Input
The input will consist of several test cases, each consisting of two parts.
The first part begins with an integer 1 <= n <= 50000, indicating the number of different years for which there is information. Next follow n lines. The ith of these contains two integers -109 <= yi <= 109 and 1 <= ri <= 109 indicating that there was ri millilitres of rain during year yi (note that the amount of rain during a year can be any nonnegative integer, the limitation on ri is just a limitation on the input). You may assume that yi < yi+1 for 1 <= i < n.
The second part of a test case starts with an integer 1 <= m <= 10000, indicating the number of queries to process. The following m lines each contain two integers -109 <= Y < X <= 109 indicating two years.
There is a blank line between test cases. The input is terminated by a case where n = 0 and m = 0. This case should not be processed.
Technical note: Due to the size of the input, the use of cin/cout in C++ might be too slow in this problem. Use scanf/printf instead. In Java, make sure that both input and output is buffered.

Output
There should be m lines of output for each test case, corresponding to the m queries. Queries should be answered with "true" if the statement is true, "maybe" if the statement might be true, and "false" if the statement is false.
Separate the output of two different test cases by a blank line.

Sample Input
4
2002 4920
2003 5901
2004 2832
2005 3890
2
2002 2005
2003 2005

3
1985 5782
1995 3048
2005 4890
2
1985 2005
2005 2015

0
0

Sample Output
false
true

maybe
maybe

1个回答

1、某校大门外长度为L的马路上有一排树，每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴，马路的一端在数轴0的位置，另一端在L的位置；数轴上的每个整数点，即0，1，2，……，L，都种有一棵树。 马路上有一些区域要用来建地铁，这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数，区域之间可能有重合的部分。现在要把这些区域中的树（包括区域端点处的两棵树）移走。你的任务是计算将这些树都移走后，马路上还有多少棵树。 输入的第一行有两个整数L（1 <= L <= 10000）和 M（1 <= M <= 100），L代表马路的长度，M代表区域的数目，L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数，用一个空格隔开，表示一个区域的起始点和终止点的坐标。 ``` 输入样例： 500 3 150 300 100 200 470 471 输出样例: 298 ``` 我的代码是 ``` #include <iostream> using std::cout; using std::cin; using std::endl; int main() { int l , m , s , e , i , j , n = 0; cin >> l >> m; int * tree = new int[l + 2] {0}; for(i = 1; i <= m; ++ i) { cin >> s >> e; for(j = s; j <= e; ++ j) tree[j] = 1; } for(i = 1; i < l + 2; ++ i) n += !tree[i] ? 1 : 0; delete [] tree; cout << n << endl; return 0; } ``` 2、一个笼子里面关了鸡和兔子（鸡有2只脚，兔子有4只脚，没有例外）。已经知道了笼子里面脚的总数a，问笼子里面至少有多少只动物，至多有多少只动物 第1行是测试数据的组数n，后面跟着n行输入。每组测试数据占1行，每行一个正整数a (a < 32768) 输出包含n行，每行对应一个输入,包含两个正整数，第一个是最少的动物数，第二个是最多的动物数，两个正整数用一个空格分开 如果没有满足要求的答案，则输出两个0。 ``` 输入样例: 2 3 20 输出样例: 0 0 5 10 ``` 我的代码是 ``` #include <iostream> using std::cout; using std::cin; using std::endl; struct Animal { int min; int max; }; int main() { int n , a , i , j , ji = 0 , tu = 0; cin >> n; Animal * animal = new Animal[n]; for(i = 0; i < n; ++ i) { cin >> a; if(a % 2 || a % 4) { animal[i].min = animal[i].max = 0; continue; } j = a; tu += j / 4; j -= j / 4 * tu; if(j > 0) { ji += j / 2; j -= j / 2 * ji; } animal[i].min = tu + ji; ji = 0; j = a; ji += j / 2; j -= j / 2 * ji; animal[i].max = ji; } for(i = 0; i < n; ++ i) cout << animal[i].min << " " << animal[i].max << endl; delete [] animal; return 0; } ``` 请大佬帮忙看一下，哪里有问题，两段代码在ide上都能正确输出，但提交就是错了
PAT1009 c语言字符串问题 我写的程序输出时起始位置会多一个空格，如何改正才能没有空格
#include<stdio.h> #include<string.h> int main(){ int i,j=0,m,k=0; char sen[100]; char s[10][20]; gets(sen); m=strlen(sen)+1; for(i=0;i<m;i++){ if(sen[i]=='\0'){ s[j][k]='\0'; k=0; j++; } if(sen[i]==' ') { s[j][k]='\0'; k=0; j++; } s[j][k]=sen[i]; k++; } for(j=j-1;j>=0;j--){ if(j!=0) printf("%s ",s[j]); else printf("%s\n",s[j]); } return 0; } 题目连接http://www.patest.cn/contests/pat-b-practise/1009

// 找到DIB图像象素起始位置 m_pBits= (unsigned char )::FindDIBBits(pBits); DIB图像的起始位置怎么计算啊？新手渣渣求各路大神指教.

Problem Description http://vim-adventures.com/ vim是一个非常方便的文本编辑器,使用它可以快速的编辑文本 vim-adventures是一个很有意思的解谜游戏,需要玩家使用一些vim下的指令来移动光标来解决一系列谜题 为了化简题意此题我们只考虑如下指令: h:让光标向左边移动一格 j:让光标向下边移动一格 k:让光标向上边移动一格 l:让光标向右边移动一格 w:让光标移动到下一个"word的开头" e:让光标移动到下一个"word的结尾" b:让光标移动到前一个"word的开头" ge:让光标移动到前一个"word的结尾" W:让光标移动到下一个"WORD的开头" E:让光标移动到下一个"WORD的结尾" B:让光标移动到前一个"WORD的开头" gE:让光标移动到前一个"WORD的结尾" (注意断句,是"下一个|word的结尾",而不是"下一个word|的结尾".如"1234 5678",2的下一个word的结尾是4而不是8,其他同理) 注: 其中一个word由字母/数字/下划线序列或者其他的非空字符序列组成.由white space(空格或者换行符)分开; 其中一个WORD由非空字符序列组成.由white space(空格或者换行符)分开; 下一个/前一个word/WORD可以跨行,如当前word是该行最后一个word,那么下一个word就是下一行的第一个word; 如果没有下一个/前一个word/WORD,那么按下w/e/b/ge/W/B/E/gE之后会让光标移动到所能移动的最远处; 例子: This is a line with example text <----<--<-<----<----<-------<--- b b b b b b b This is a line with example text <--<--<-<----<----<-------<----- ge ge ge ge ge ge ge This is a line with example text ----->-->->---->---->------->--> w w w w w w w This is a line with example text --->-->->---->---->------->----> e e e e e e e while ((((true)))) printf("Hello VIM!") ------>--->--->---->------------->-->-> w w w w W w w (w,e,b,ge,W等表示按下该键后可以让当前光标移动到对应的"<",">"位子. 前两个例子光标一开始在最右,后三个例子光标一开始在最左) 文本中还有一些不能走上去的位置,如上图中的石头,这些石头光标不管怎么样都没办法移动上去. 现在给你一段文本,要求你从起点位置按最少的按键将光标移动到终点位置. 其中ge算两次按键,大写字母如W可以按shift+w(算两次按键),或者在Caps Lock打开的状态下按一下w,打开/关闭Caps Lock算一次按键. shift不能按住不放,如在Caps Lock大写的情况下, 按下shift+G和shift+E来实现ge算4次按键. 起始状态Caps Lock是在小写状态 Input 第一行一个整数T代表接下去有T组数据 每组数据第一行是六个整数N,M,sx,sy,ex,sy.其中N,M代表文本的尺寸,(sx,sy)代表起点位置,(ex,ey)代表终点位置,下标从0开始 接下去N行,每行有M个字符,代表文本 接下去N行,每行有M个字符,代表石头,如果是0则表示没有石头,如果是1则表示有石头 [Technical Specification] 0<T<=50 0<N,M<=250 0<=sx,ex<N 0<=sy,ey<M 代表文本的N*M矩阵所有字符的ascii码在32到126之间 每行字符都不以空格开头/结尾 代表石头的N*M矩阵只会包含0或者1 起点和终点一定没有石头 Output 首先输出case数(见sample),接着输出最小的按键使得光标从起点移动到终点.如果走不到终点则输出-1. Sample Input 8 1 10 0 0 0 9 wwwwwwww w 0111111110 1 10 0 0 0 9 WWW.WWWW W 0111111110 1 10 0 0 0 9 e eeeeeeee 0111111110 1 10 0 0 0 9 E EEEE.EEE 0111111110 1 10 0 9 0 0 bbbbbbbb b 0111111110 1 10 0 9 0 0 BBBBB.BB B 0111111110 1 10 0 9 0 0 . gegegege 0111111110 1 10 0 9 0 0 . gEgE..gE 0111111110 Sample Output Case #1: 1 Case #2: 2 Case #3: 1 Case #4: 2 Case #5: 1 Case #6: 2 Case #7: 2 Case #8: 3

NI的485板卡输出波形空闲时电平为0V，不知道是对的还是哪里有问题？

pyqt+Python两个类之间传值
How many ways 怎么写呢
Problem Description 这是一个简单的生存游戏，你控制一个机器人从一个棋盘的起始点(1,1)走到棋盘的终点(n,m)。游戏的规则描述如下： 1.机器人一开始在棋盘的起始点并有起始点所标有的能量。 2.机器人只能向右或者向下走，并且每走一步消耗一单位能量。 3.机器人不能在原地停留。 4.当机器人选择了一条可行路径后，当他走到这条路径的终点时，他将只有终点所标记的能量。 如上图，机器人一开始在(1,1)点，并拥有4单位能量，蓝色方块表示他所能到达的点，如果他在这次路径选择中选择的终点是(2,4) 点，当他到达(2,4)点时将拥有1单位的能量，并开始下一次路径选择，直到到达(6,6)点。 我们的问题是机器人有多少种方式从起点走到终点。这可能是一个很大的数，输出的结果对10000取模。 Input 第一行输入一个整数T,表示数据的组数。 对于每一组数据第一行输入两个整数n,m(1 <= n,m <= 100)。表示棋盘的大小。接下来输入n行,每行m个整数e(0 <= e < 20)。 Output 对于每一组数据输出方式总数对10000取模的结果. Sample Input 1 6 6 4 5 6 6 4 3 2 2 3 1 7 2 1 1 4 6 2 7 5 8 4 3 9 5 7 6 6 2 1 5 3 1 1 3 7 2 Sample Output 3948
C++无向图求唯一路径问题。

Java学习的正确打开方式

linux系列之常用运维命令整理笔录

Python十大装B语法
Python 是一种代表简单思想的语言，其语法相对简单，很容易上手。不过，如果就此小视 Python 语法的精妙和深邃，那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点，并附上详细的实例代码。如能在实战中融会贯通、灵活使用，必将使代码更为精炼、高效，同时也会极大提升代码B格，使之看上去更老练，读起来更优雅。

2019年11月中国大陆编程语言排行榜
2019年11月2日，我统计了某招聘网站，获得有效程序员招聘数据9万条。针对招聘信息，提取编程语言关键字，并统计如下： 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...

JDK12 Collectors.teeing 你真的需要了解一下

SQL-小白最佳入门sql查询一

【图解经典算法题】如何用一行代码解决约瑟夫环问题

“狗屁不通文章生成器”登顶GitHub热榜，分分钟写出万字形式主义大作

GitHub标星近1万：只需5秒音源，这个网络就能实时“克隆”你的声音

《程序人生》系列-这个程序员只用了20行代码就拿了冠军

11月8日，由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办，科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。 　　区块链技术被认为是继蒸汽机、电力、互联网之后，下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力，电力解决了人类基本的生活需求，互联网彻底改变了信息传递的方式，区块链作为构造信任的技术有重要的价值。 　　1...

【技巧总结】位运算装逼指南

【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块（文章最后附有源码） 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁，现如今各大云服务平台横空出世，市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统，而本人家里就有人在用烟草销售系统，直接在网上完成挑选、购买与提交收货点，方便又快捷。 试想，若没有烟草销售系统，本人家人想要购买烟草，还要独自前往药...
4G EPS 第四代移动通信系统