积木游戏(block.pas)
【题目描述】
春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为n的大厦,最高的积木的最终需要达到h。
在搭建开始之前,没有任何积木(可以看成n块高度为 0 的积木)。接下来每次操作,小朋友们可以选择一段连续区间[L, R],然后将第L块到第R块之间(含第L块和第R块)所有积木的高度分别增加1。
为了锻炼小朋友们的动手能力,幼儿园准备让他们记录下每一步操作,即记下总步数,和每一次的区间,但是这样的话,幼儿园老师们的统计工作就变得很麻烦,因为还需要通过计算某时刻某区间的操作覆盖次数(即有多少次操作在上面进行过)来分析他们的比赛心理。所以请你写一个程序,来完成这一操作,为了方便你的编程,直接把春春幼儿园数据整理成两种操作:
1 x y: 区间[x,y]叠上积木;
2 x y: 求区间[x,y]最大操作次数.
【输入说明】
第一行n,m表示大厦宽度和操作数
接下来m行操作。
【输入样例】
5 4
1 1 3
2 2 5
1 2 4
2 3 5
【输出样例】
1
2
【数据范围】
对于20%的数据,n,m<=100
对于60%的数据,n <=1000,m<=50000
对于100%的数据,n,m<=50000
数字游戏(math.pas)
【题目描述】
直接切入主题,有n个自然数两两组成了一个方程,即(以3为例):
x1+x2=a1;
x1+x3=a2;
x2+x3=a3;
这时候你也许会说,这不是高斯消元吗?而且只要n个方程就够了,不用两两组成啊。所以题目要加大一点难度了,这里所给出的a并非是按照上表的顺序的,而是乱序给出,就是说你不知道方程的左右两边的匹配情况,那么现在请你解出方程并且将其从小到大排序后输出。
【输入说明】
第一行,仅一个n,表示未知数的个数
接下来给出两两组成的方程组的右边部分,即a1,a2,a3……
【输出说明】
仅一行,从小到大输出方程的解。
【输入样例】
4
6 5 4 3 2 1
【输出样例】
0 1 2 4
【数据范围】
对于全部的数据1<=n<=100
造梦(dream.pas)
【题目描述】
“梦是一种来自自身潜意识的压力宣泄,确切的说,是一种具体意识的抽象表现,不过,在梦中的自我操控并非不可实现,当一个人在自我意识极强的情况下进入梦境,可以对虚拟的世界进行人为操控,但是……” ——《forever97梦理论》
“巨石阵是古老的一种祭祀方式,是原始人用来表示对于太阳神的敬仰,巨石阵的建造非常的困难,要求每一块基石基本相同,即长度相差不超过5个长度单位,巨石阵的高度象征着一个部落的发展,但是奇怪的是,其高度的计算是按照最矮的那段石柱来的。那不是说,即使……” ——《forever97古迹研究》
现在WZOI掌握了梦理论,准备在虚拟世界建造一个巨石阵,由n块虚拟巨石组成,但是在梦中不能创造出材料,需要在梦空间中自行搜罗材料,现在找到了m块虚拟石料,请问,WZOI最多可以建造多高的巨石阵。
【输入说明】
第一行,m,n如题
接下来m块材料的长度
【输出说明】
仅一行,表示最多可以建造多高的巨石阵
【输入样例】
5 5
3 4 5 6 8
【输出样例】
4
【样例说明】
将长度为8的石料切为4和4,选取4,5,6,建造巨石阵,则高度为4。
【数据范围】
对于30%的数据,n,m<=1000
对于60%的数据,n ,m<=300000
对于100%的数据,n,m<=1000000