在大家的要求下我找了几个中文的题,其中有些比较简单,难的也有,大家做了在这上面发答案,我给大家去提交
第一题:
防御导弹
Time Limit:1000MS Memory Limit:1000K
Total Submit:93 Accepted:28
Description
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够达到任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在使用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。
Input
最多20个整数,分别表示导弹依次飞来的高度(雷达给出高度数据是不大于30000的正整数)
Output
两个整数M和N。表示:这套系统最多能拦截 M 枚导弹,如果要拦截所有导弹最少要配备 N 套这种导弹系统。
Sample Input
300 250 275 252 200 138 245
Sample Output
5 2
第二题:
母牛生小牛
Time Limit:1000MS Memory Limit:1000K
Total Submit:425 Accepted:135
Description
设有一头小母牛,从出生第四年起每年生一头小母牛,按此规律,第N年时有几头母牛?
Input
本题有多组数据。每组数据只有一个整数N,独占一行。(1≤N≤50)
Output
对每组数据,输出一个整数(独占一行)表示第N年时母牛的数量
Sample Input
1
4
5
20
Sample Output
1
2
3
872
第三题:
扬辉三角
Time Limit:1000MS Memory Limit:65536K
Total Submit:461 Accepted:116
Description
输出扬辉三角
Input
本题有测试数据,每组数据仅含一个整数N(N不大于34)。一组数据独占一行。
Output
对于每一组数据,先输出一个
Case #:
。其中#号代表第#组数据。接下来输出一个由数字组成的扬辉三角。一行中的数字之间用一个空格分开。行尾不要有多余的空格。
两组数据之间空开一行。
Sample Input
6
3
Sample Output
Case 1:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Case 2:
1
1 1
1 2 1
第四题:
数素数(注意:数据较大,一般的算法达不到这个效率)
Time Limit:1000MS Memory Limit:65536K
Total Submit:732 Accepted:58
Description
素数是的只能被1和它本身整除的自然数。判断一个数是素数的方法是使用2到该数的平方根的素数除它,若有能整除的则该数不是素数。
Input
本题有多组数据,每组数据由两个正整数M,N组成。(0<M<N<1000000)
Output
输出一个整数,表示介于M,N之间(包括M,N)的素数的数量。
Sample Input
5 10
1 3
6 8
Sample Output
2
2
1
第五题:
高精度整数去位去最小问题
Time Limit:1000MS Memory Limit:65536K
Total Submit:154 Accepted:11
Description
键盘输入一个高精度的正整数N,去掉其中任意M个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和M寻找一种方案使得剩下的数字组成的新数最小。输出组成的新的正整数。(不超过240位)
输入数据均不需判错。
如果去掉了某几个位后得到的新整数开头为0,保留0。
Input
本题有多组测试数据,每组测试数据占一行。
一个高精度正整数N(N不超过240位)一个正整数M。(M为不大于N的长度的正整数)
N,M由一个空格分开。
Output
新的正整数,每组数据的输出占一行。不要多余的空白
Sample Input
456547 1
456547 2
456547 3
7773359 2
103 1
Sample Output
45547
4547
447
73359
03
第六题:
行编辑器
Time Limit:10000MS Memory Limit:65536K
Total Submit:129 Accepted:45
Description
一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。
由于用户在终端上进行输入时,不能保证不出差错,因此,若在编辑程序中,“每接受一个字符即存入用户数据区”的做法显然不是最恰当的。较好的做法是,设立一个输入缓冲区,用以接受用户输入的一行字符,然后逐行存入用户数据区。允许用户输入出差错,并在发现有误时可以及时更正。例如,当用户发现刚刚键入的一个字符是错的时,可补进一个退格符"#",以表示前一个字符无效;
如果发现当前键入的行内差错较多或难以补救,则可以键入一个退行符"@",以表示当前行中的字符均无效。
如果已经在行首继续输入'#'符号无效。
Input
输入一个多行的字符序列。但行字符总数(包含退格符和退行符)不大于250。
Output
按照上述说明得到的输出。
Sample Input
whli##ilr#e(s#*s)
outcha@putchar(*s=#++);
Sample Output
while(*s)
putchar(*s++);
第七题:
石子归并
Time Limit:1000MS Memory Limit:65536K
Total Submit:55 Accepted:19
Description
你有一堆石头质量分别为W1,W2,W3...WN.(W<=100000)现在需要你将石头合并为两堆,使两堆质量的差为最小。
Input
该程序有多组测试数据,每组测试数据第一行为整数N(1<=N<=20),表示有N堆石子。接下去N行,为每堆石子的质量。
Output
每组测试数据只需输出合并后两堆的质量差的最小值。
Sample Input
5
5
8
13
27
14
2
4
4
Sample Output
3
0
第八题:
青蛙的约会
Time Limit:1000MS Memory Limit:65536K
Total Submit:204 Accepted:17
Description
两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。
我们把这两只青蛙分别叫做青蛙A和青蛙B,并且规定纬度线上东经0度处为原点,由东往西为正方向,单位长度1米,这样我们就得到了一条首尾相接的数轴。设青蛙A的出发点坐标是x,青蛙B的出发点坐标是y。青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米。现在要你求出它们跳了几次以后才会碰面。
Input
输入只包括一行5个整数x,y,m,n,L,其中x≠y < 2000000000,0 < m、n < 2000000000,0 < L < 2100000000。
Output
输出碰面所需要的跳跃次数,如果永远不可能碰面则输出一行"Impossible"
Sample Input
1 2 3 4 5
Sample Output
4
雁无留踪之意,水无取影之心