【SCOI2007】降雨量

来源:互联网 发布:win7网络图标无法打开 编辑:程序博客网 时间:2024/05/20 05:25

【SCOI2007】降雨量

【题目描述】

我们常常会说这样的话:“X年是自Y年以来降雨量最多的”。它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小于X年。例如2002,2003,2004和2005年的降雨量分别为4920,5901,2832和3890,则可以说“2005年是自2003年以来最多的”,但不能说“2005年是自2002年以来最多的”由于有些年份的降雨量未知,有的说法是可能正确也可以不正确的。

【输入】

输入仅一行包含一个正整数n,为已知的数据。以下n行每行两个整数yi和ri,为年份和降雨量,按照年份从小到大排列,即yi<yi+1。下一行包含一个正整数m,为询问的次数。以下m行每行包含两个数Y和X,即询问“X年是自Y年以来降雨量最多的。”这句话是必真、必假还是“有可能”。

【输出】

对于每一个询问,输出true,false或者maybe。

【输入样例】

6
2002 4920
2003 5901
2004 2832
2005 3890
2007 5609
2008 3024
5
2002 2005
2003 2005
2002 2007
2003 2007
2005 2008

【输出样例】

false
true
false
maybe
false

【数据范围】

100%的数据满足:1<=n<=50000, 1<=m<=10000, -109<=yi<=109, 1<=ri<=109

【题解】

我使用的算法是线段树,但还有一个动态规划的解法,本蒟蒻不会TAT

其实只用讨论true和maybe两种情况,剩下的情况就是false了。

答案为true的条件:

①询问中从y到x之间所有的年份都已知;

②x+1~y-1之间的降雨量都小于x年;

③x年的降雨量小于等于y年的降雨量。

以上条件同时满足,答案即为true。

答案为maybe的条件(三种):

(一)

①x或y中有且只有一年的降雨量未知;

x+1~y-1之间的降雨量都小于x年。

以上条件同时满足,答案即为maybe。

(二)

x和y的降雨量都未知。

满足此条件,答案即为maybe。

(三)

这个是最复杂的……

x和y的降雨量都已知;

x+1~y-1之间至少有一年的降雨量未知;

x+1~y-1之间已知的降雨量都小于x年;

④x年的降雨量小于等于y年的降雨量。

以上条件同时满足,答案即为maybe。

判断降雨量是否为最大就用线段树,判断是否全部已知就检查这一段年份内的数据是否绝对稠密。

话说这题真的很纠结啊……

【代码】

传统朴素线段树,只用查找区间最大值,不用考虑修改还是好写。

【SCOI2007】降雨量#代码
0 0
原创粉丝点击