冲刺NOIP2017模拟赛1
题目名称 奶牛晒衣服 奶牛排队 圆圈舞蹈
存盘文件名 dry tahort circle
输入文件名 dry.in tahort.in circle.in
输出文件名 dry.out tahort.out circle.out
时限 1s 1s 1s
内存限制 128M 128M 128M
【注意事项】:请自行完成题目,切勿讨论。
题1 奶牛晒衣服
【问题描述】
在熊大妈英明的带领下,时针和他的同伴生下了许多牛宝宝。熊大妈决定给每个宝宝都穿上可爱的婴儿装。于是,为牛宝宝洗晒衣服就成了很不爽的事情。
圣人王担负起了这个重任。洗完衣服后,你就要弄干衣服。衣服在自然条件下用1的时间可以晒干A点湿度。抠门的熊大妈买了1台烘衣机。使用烘衣机可以让你用1的时间使1件衣服除开自然晒干的A点湿度外,还可烘干B点湿度,但在1的时间内只能对1件衣服使用。
N件的衣服因为种种原因而不一样湿,现在告诉你每件衣服的湿度,要你求出弄干所有衣服的最少时间(湿度为0为干)。
【输入格式】
第一行N,A,B,接下来N行,每行一个数,表示衣服的湿度(1<=湿度,A,B<=500000,1<=N<=500000)。
【输出格式】
一行,最少时间。
【输入样例】Dry.in
3 2 1
1
2
3
【输出样例】Dry.out
1
【样例解析】
第1个时间内,用机器处理第3件衣服,此外,所有衣服自然晒干2。花费1时间全部弄干。
题2 奶牛排队
【问题描述】
奶牛在熊大妈的带领下排成了一条直队。
显然,不同的奶牛身高不一定相同……
现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛A是最矮的,最右边的B是最高的,且B高于A奶牛,且中间如果存在奶牛,则身高不能和A、B奶牛相同,问这样的一些奶牛最多会有多少头。
从左到右给出奶牛的身高,请告诉它们符合条件的最多的奶牛数(答案可能是零、二,但不会是一)。
【输入格式】
第一行一个数N(2<=N<=100000),表示奶牛的头数。
接下来N个数,每行一个数,从上到下表示从左到右奶牛的身高(1<=身高<=maxlongint)。
【输出格式】
一行,表示最多奶牛数。
【输入样例】Tahort.in
5
1
2
3
4
1
【输出样例】Tahort.out
4
【样例解析】
取第1头到第4头奶牛,满足条件且为最多。
题3 圆圈舞蹈
【问题描述】
熊大妈的奶牛在时针的带领下,围成了一个圈跳舞。由于没有严格的教育,奶牛们之间的间隔不一致。
奶牛想知道两只最远的奶牛到底隔了多远。奶牛A到B的距离为A顺时针走和逆时针走,到达B的较短路程。告诉你相邻个奶牛间的距离,请你告诉奶牛两只最远的奶牛到底隔了多远。
【输入格式】
第一行一个整数N,表示有N只奶牛。(2<=N<=100000)
接下来2~N+1行,第I行有一个数,表示第I-1头奶牛顺时针到第I头奶牛的距离。(1<=距离<=maxlongint,距离和<=maxlongint)
第N+1行的数表示第N头奶牛顺时针到第1头奶牛的距离。
【输出格式】
一行,表示最大距离。
【输入样例】Circle.in
5
1
2
3
4
5
【输出样例】Circle.out
7
【样例解析】
所有奶牛I到J之间的距离和到达方式(顺为顺时针,逆为逆时针)如下
I\J 1 2 3 4 5
1 0 1(顺) 3(顺) 6(顺) 5(逆)
2 1(逆) 0 2(顺) 5(顺) 6(逆)
3 3(逆) 2(逆) 0 3(顺) 7(顺)
4 6(逆) 5(逆) 3(逆) 0 4(顺)
5 5(顺) 6(顺) 7(逆) 4(逆) 0
所以,最远的两头奶牛为3到5,距离是7。
题目名称 奶牛晒衣服 奶牛排队 圆圈舞蹈
存盘文件名 dry tahort circle
输入文件名 dry.in tahort.in circle.in
输出文件名 dry.out tahort.out circle.out
时限 1s 1s 1s
内存限制 128M 128M 128M
【注意事项】:请自行完成题目,切勿讨论。
题1 奶牛晒衣服
【问题描述】
在熊大妈英明的带领下,时针和他的同伴生下了许多牛宝宝。熊大妈决定给每个宝宝都穿上可爱的婴儿装。于是,为牛宝宝洗晒衣服就成了很不爽的事情。
圣人王担负起了这个重任。洗完衣服后,你就要弄干衣服。衣服在自然条件下用1的时间可以晒干A点湿度。抠门的熊大妈买了1台烘衣机。使用烘衣机可以让你用1的时间使1件衣服除开自然晒干的A点湿度外,还可烘干B点湿度,但在1的时间内只能对1件衣服使用。
N件的衣服因为种种原因而不一样湿,现在告诉你每件衣服的湿度,要你求出弄干所有衣服的最少时间(湿度为0为干)。
【输入格式】
第一行N,A,B,接下来N行,每行一个数,表示衣服的湿度(1<=湿度,A,B<=500000,1<=N<=500000)。
【输出格式】
一行,最少时间。
【输入样例】Dry.in
3 2 1
1
2
3
【输出样例】Dry.out
1
【样例解析】
第1个时间内,用机器处理第3件衣服,此外,所有衣服自然晒干2。花费1时间全部弄干。
题2 奶牛排队
【问题描述】
奶牛在熊大妈的带领下排成了一条直队。
显然,不同的奶牛身高不一定相同……
现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛A是最矮的,最右边的B是最高的,且B高于A奶牛,且中间如果存在奶牛,则身高不能和A、B奶牛相同,问这样的一些奶牛最多会有多少头。
从左到右给出奶牛的身高,请告诉它们符合条件的最多的奶牛数(答案可能是零、二,但不会是一)。
【输入格式】
第一行一个数N(2<=N<=100000),表示奶牛的头数。
接下来N个数,每行一个数,从上到下表示从左到右奶牛的身高(1<=身高<=maxlongint)。
【输出格式】
一行,表示最多奶牛数。
【输入样例】Tahort.in
5
1
2
3
4
1
【输出样例】Tahort.out
4
【样例解析】
取第1头到第4头奶牛,满足条件且为最多。
题3 圆圈舞蹈
【问题描述】
熊大妈的奶牛在时针的带领下,围成了一个圈跳舞。由于没有严格的教育,奶牛们之间的间隔不一致。
奶牛想知道两只最远的奶牛到底隔了多远。奶牛A到B的距离为A顺时针走和逆时针走,到达B的较短路程。告诉你相邻个奶牛间的距离,请你告诉奶牛两只最远的奶牛到底隔了多远。
【输入格式】
第一行一个整数N,表示有N只奶牛。(2<=N<=100000)
接下来2~N+1行,第I行有一个数,表示第I-1头奶牛顺时针到第I头奶牛的距离。(1<=距离<=maxlongint,距离和<=maxlongint)
第N+1行的数表示第N头奶牛顺时针到第1头奶牛的距离。
【输出格式】
一行,表示最大距离。
【输入样例】Circle.in
5
1
2
3
4
5
【输出样例】Circle.out
7
【样例解析】
所有奶牛I到J之间的距离和到达方式(顺为顺时针,逆为逆时针)如下
I\J 1 2 3 4 5
1 0 1(顺) 3(顺) 6(顺) 5(逆)
2 1(逆) 0 2(顺) 5(顺) 6(逆)
3 3(逆) 2(逆) 0 3(顺) 7(顺)
4 6(逆) 5(逆) 3(逆) 0 4(顺)
5 5(顺) 6(顺) 7(逆) 4(逆) 0
所以,最远的两头奶牛为3到5,距离是7。