2个回答
2013-04-17
展开全部
9、大数的乘法
Time Limit:1000MS Memory Limit:32768KDescription:给出一些整数对,一个为可能接近100位的大数,另一个为1位数,求这些数对的乘积。 Sample Input:1 1123 012345678910 8123456789101234567891012345678910 7Sample Output:1098765431280864197523708641975237086419752370 十、按长度排序
Time Limit:1000MS Memory Limit:32768KDescription:是一些整数,它的结构是:第一行为一个整数N,表示后面有N个整数需要排序输出,先按长度排,如长度一样则按大小排,若遇到N等于零,则运行结束。 Sample Input:31231233332100000000000000010Sample Output:121233333 11000000000000000 十一、排列学生成绩
Time Limit:1000MS Memory Limit:32768KDescription:一些向量数据,表示许多学生的各门成绩。编程,从中挑出平均分数在60分以上的学生进行排序输出。 Sample Input:Zhangsan 90 85 77 25 63Lisi 58 73 66 85 90Wangwu 70 80 90 51 52Qianliu 80 63 58 52 50Chenqi 90 28 38 48 58Zhouba 40 70 70 33 55Sample Output:1 Lisi2 Wangwu3 Zhangsan 12、十二、倒置排序
Time Limit:1000MS Memory Limit:32768KDescription:将一些整数按倒置值排序后输出. 所谓倒置,是指把整数各位倒过来构成一个新数,例如:13倒置成了31. Input:第一行的整数N表示后面列出的组数。每组数的第一个整数n表示后面将有n个整数。(每组数据量不超80) Output:将每组数按倒置值进行排序输出.其每组数的结果占一行.行末无空格. Sample Input:24 83 13 24 364 99 100 123 12345Sample Output:13 83 24 36100 99 123 12345 十三、绩点计算
Time Limit:1000MS Memory Limit:32768KDescription:有一些班级学生的三门课程成绩,编程计算其绩点,并按绩点分数的高低排列。绩点计算公式为:(成绩小于60分,则该门课程的绩点为0) [(课程1 – 50)÷10×3 +(课程2 – 50)÷10×3 +(课程3 – 50)÷10×4]÷10 Sample Input:张三 89 62 71李四 98 50 80王五 67 88 91Sample Output:王五 67 88 91李四 98 50 80张三 89 62 71 十四、按日期排序
Time Limit:1000MS Memory Limit:32768KDescription:有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列。 Sample Input:12/31/200510/21/200302/12/200415/12/199910/22/200311/30/2005Sample Output:15/12/199910/21/200310/22/200302/12/200411/30/200512/31/2005 十五、按1的个数排序
Time Limit:1000MS Memory Limit:32768KDescription:有一些01字串,将其按1的个数的多少的顺序进行输出。 Sample Input:10011111000011011010101101100Sample Output:01110000001101101010110011111 十六、注释
Time Limit:1000MS Memory Limit:32768KDescription:给出一个C++源程序代码。请将其中的注释去掉。 Sample Input://====================== // simplest program //======================#include<iostream>using namespace std;//----------------------int main(){cout<<”hello world!\n”;}//--------------------- Sample Output:#include<iostream>using namespace std;int main(){cout<<”hello world!\n”;} 十七、最短距离的点
Time Limit:1000MS Memory Limit:32768KDescription:给出一些整数对,它们表示一些平面上的坐标点,给定一个点,求所有那些点到该点最短距离的点。结构为:第一个整数对为所给定的点,后面的整数对为所有其他的点。 Sample Input:9 21 01 10 01 22 1Sample Output:2 1 十八、最短距离的两点
Time Limit:1000MS Memory Limit:32768KDescription:给出一些整数对,它们表示平面上的点,求所有这些点中距离最近的两个点。结构为:每组数据的第一行只有一个整数N,表示后面有N个点。求这些点中的两点,以表明该两点是所有点中距离最短的。若N为0,则表示输入结束。 Sample Input:41 20 03 67 231 33 10 00Sample Output:(1,2) (0,0)(1,3) (3,1) 十九、到直线的最长距离
Time Limit:1000MS Memory Limit:32768KDescription:给定一根直线,给出一些坐标点,求这些坐标点到直线的最大距离。第一行有两个整数对,表示直线的两点,后面有一些整数对,那是给出的坐标点。结果保留三位小数。 Sample Input:1 2 3 43 810 107 2900 1Sample Output:636.396 二十、计算矩形面积
Time Limit:1000MS Memory Limit:32768KDescription:两个坐标点能确定一个矩形,请按矩形的面积大小进行排序输出。每一行给出两个坐标点,表示一个矩形。请按要求输出面积。 Sample Input:1 2 3 41 0 2 32 1 3 12 8 7 1Sample Output:03435注:ACM比赛非常注重输出格式。若输出格式错误则全题不能得分。 以下几个题训练基本输出语句的使用。二十一、粘墙“三角形”
Time Limit:1000MS Memory Limit:32768KDescription:输入一些正整数(≤26),编程输出以这些正整数为边长的附着墙而立的字母三角形。 Sample Input:37Sample Output:a aa abaabc a aa aba abca abcda abcdea abcdefaabcdefg 二十二、山形图
Time Limit:1000MS Memory Limit:32768KDescription:输入中含有若干组数据,每组数都包含一个字符c和一个正整数n(n≤50),表示边长为n图案为c的山形字符图。一个紧挨一个地打印所有这些山形字符图。 Sample Input:A 3M 9Sample Output: A AAAAAAAA M MMM MMMMM MMMMMMM MMMMMMMMM MMMMMMMMMMM MMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 二十三、织花纹布
Time Limit:1000MS Memory Limit:32768KDescription:输入中含有若干组数据,每组数据由四部分组成,第一个是花纹字符,后面三个是整数,分别表示宽度(<80的奇数),高度(≤40)和重复度(≤20)。请编程画出该花纹。 Sample Input:W 9 17 1E 15 6 2Sample Output:WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W WWWWWWWWWW EEEEEEEEEEEEEEE E E E E E E E E EEEEEEEEEEEEEEE E E E E E E E E EEEEEEEEEEEEEEEE E E E E E E E EEEEEEEEEEEEEEE E E E E E E E E EEEEEEEEEEEEEEE E E E E E E E EEEEEEEEEEEEEEEE 二十四、倚直线画圈
Time Limit:1000MS Memory Limit:32768KDescription:鲁迅先生笔下的阿Q连圈都画不好,现在我们借助编程手段,可以对准直线自动地按要求画圈,不亦乐乎?文本字符的圈虽然看上去有些粗糙,不过没有关系,只要是上下左右对称,粗细均匀,而且封闭就行。 Input:圈的内部总是一个正方形,外部包围着一定粗细的线条,角部不用画出来。给定的数据,每行为一组,包括用的字符笔,笔的粗细和圈内正方形的高度。如果输入数据中笔粗和高度都为0,则结束处理。 Output:每个圈应倚着边上一直线,直线字符为B,每个圈之间有一个空行,第一个圈前面无空行。 Sample Input:A 1 3F 3 5A 0 0 Sample Output:B AAABA ABA ABA AB AAA B FFFFFB FFFFFB FFFFFBFFF FFFBFFF FFFBFFF FFFBFFF FFFBFFF FFFB FFFFFB FFFFFB FFFFF 二十五、支票保护
Time Limit:1000MS Memory Limit:32768KDescription:计算机经常用于工资和帐号支付应用等支票写入系统。许多怪事常常出现。如每月工资支票上错误的多写一百万美元。由于人和机器的错误,使支票写入系统写出不正常数值。系统设计人员在系统中建立控制,防止发生出这种错误支票。另一个严重的问题是有些人故意改变支票金额,想窃取钱财。要防止改变支票金额,大多数支票写入系统采用支票保护(Check Protection)技术。一个常用的安全方法是写出支票金额的大写,即使支票的数字好改,大写金额也难篡改。编写一个程序,输入数字金额,输出大写金额。如112.43写成ONE HUNDRED TWELVE Dollars and 43/100。 Input:输入数据有若干,数据范围在0.00到999.99。 Output:对于每个数据输出其大写的英语表示。如12.45写成TWELVE Dollars and 45/100。如果是整数部分是零或一美元,则Dollar不加s。如果没有角分,则角分不用输出。 Sample Input:0.453456.89Sample Output:ZERO Dollar and 45/100THIRTY FOUR DollarsFIFTY SIX Dollars and 89/100 二十六、单词统计
Time Limit:1000MS Memory Limit:32768KDescription:你需要设计一个程序,将一篇文章中的所有单词分组并统计。
一篇文章是一连串的单词,每个单词占一行。当且仅当w中的字符通过某种重排列与v相同时,单词w和单词v属于同一个组。找出个数最多的5个组。
Input
输入包含许多由小写字母构成的单词,每行一个。
以EOF终止。
Output
输出个数最多的5组单词。如果少于5组,则把它们全部输出。
组与组之间,按单词数递减排序,若单词数相等,比较组内字典序最小的单词,字典序小的在先。
对每组,先输出组内单词数,再按字典序递增依次输出各单词,相同单词只输出一次。 Sample Input:undisplayedtraceteasingletonetaeatdisplayedcratecatercartecaretbetabeatbateateabetcaretcaretcaretSample Output:Group of size 8: caret carte cater crate trace .Group of size 4: abet bate beat beta .Group of size 4: ate eat eta tea .Group of size 1: displayed .Group of size 1: singleton . 二十七、统计天数
Time Limit:1000MS Memory Limit:32768KDescription:根据一些日期,以及日期上所做的标记,按条件统计其天数。 Input:输入数据含有不多于50个的具有格式“Mon. DD YYYY”的日期,有些日期后面可能标有*,每个日期占一行。 Output:统计任何月份中凡是25号的日期数,如果25号这一天后面标有*,则该天应加倍计算。 Sample Input:Oct. 25 2003Oct. 26 2003Sep. 12 2003*Juy. 25 2002*Sample Output:3Source:qianneng 二十八、艰辛的突围
Time Limit:1000MS Memory Limit:32768KDescription:在一场战役中,一队我方的士兵落入了敌人的包围圈,他们决定冒死突围出去,在突围的任意时刻,总会有一个士兵冲在最前面,引导着队伍前进。在突围的过程中,他们肯定要不断受到敌方的攻击,尤其冲在最前面的士兵受到的伤害最大。我们以一分钟为单位,最开始每个士兵都有相同的能量值E,突围路线的总长度D。士兵每分钟受到的伤害跟队伍的突围速度有关。假定队伍在某一分钟内突围的速度为v,那么冲在最前面的士兵在这一分钟里受到的总伤害为v2,而其他士兵受到的总伤害均为v。而且我们可以在每分钟开始的时候瞬时替换掉冲在最前面的士兵,让另一个士兵冲上去,其它的中间时刻是不允许调换的。 对于特定的某一分钟里,队伍的突围速度是稳定的,由此时冲在最前面的士兵决定,他可以任意选择一个速度v前进,但是要保证自己在这一分钟开始的时候剩余的能量e>=v2。现要你安排一种最优的调度方案,使得队伍突围出去的时间最少,当然在这个过程中可能会有些士兵会死掉,也许全部死掉。 Input:包含多组测试数据。每组测试数据包含三个整数N、E、D。分别表示士兵的个数、每个士兵初始的能量值和突围路线的总长度。 1<=N<=20,1<=E<=100,1<=D<=100。 Output:针对每组测试数据,输出最短需要多少时间才能突围出去,如果所需的最小时间是个浮点数,则向上取整。万一突围不出去,就直接输出0. Sample Input:2 17 7Sample Output:2 二十九、大整数加法
Time Limit:1000MS Memory Limit:32768KDescription:给定一些大数,请计算其和。 Input:输入数据中含有一些数据组(数量≤100),每组数据由一个整数n(n≤100)领衔,后跟n个大整数(0≤大数,大数位数≤200),若n=0则表示输入结束。 Output:输出每组数据所计算的大数和,每个结果单独占一行。 Sample Input:5123456789628799998056456456546545790Sample Output:5652057111507 三十、大整数乘法
Time Limit:5000MS Memory Limit:32768KDescription:给定一些大数,请计算其积。 Input:输入数据中含有一些整数对(对数≤1000),若某对整数(整数位数≤200)的值为0 0,则表示输入结束。 Output:每对整数对应一个乘法计算结果,输出该结果,每个结果输出完后应回车。 Sample Input:2 312 340 0Sample Output:6408 三十一、(1998年北美区ACM选拔赛试题)DNA SortingTime Limit:1000MS Memory Limit:32768KProblem: DNA排序 在一个序列中,“没排序”的一个尺度是无序对的总数。例如,在字母序列“DAABEC”中,“没排序”的尺度是5,因为D比它右边的4个字母大,而E比它右边的1个字母大。这个尺度被称为序列的倒位数量。序列“AACEDGG”只有一个倒位(E和D)――即它几乎是有序的――然而,序列“ZWQM”则有6个倒位(其序正好完全相反)。 你负责编排DNA字符串的序列(系列中只包含A,C,G和T四个字符)。然而,不是根据字母表顺序来编排,而是根据“没排序”程度即倒位数量来编排,从“排序最好”到“排序最不好”的顺序来编排。所有的字符串长度相同。问题包含多个测试案例! 多个测试案例前是一个正整数N,然后是一行空行,接下去是N个输入块。每个输入块的格式在问题中描述了。输入块之间用空行隔开。 2、输入描述 每个输入块的第一行包含两个整数:正整数n (0 < n <= 50),表示字符串的长度;另一个正整数m (1 < m <= 100),表示字符串的数目。下面就是m行,每行是一个长为n的字符串。 3、输出描述 输出输入数据中的字符串,按从“排序最好”到“排序最不好”的顺序排列。如果两个字符串的倒位数量相同,那么按它们在输入文件中的先后顺序输出。 4、输入样例 1 10 6AACATGAAGGTTTTGGCCAATTTGGCCAAAGATCAGATTTCCCGGGGGGAATCGATGCAT 5、输出样例 CCCGGGGGGAAACATGAAGGGATCAGATTTATCGATGCATTTTTGGCCAATTTGGCCAAA
Time Limit:1000MS Memory Limit:32768KDescription:给出一些整数对,一个为可能接近100位的大数,另一个为1位数,求这些数对的乘积。 Sample Input:1 1123 012345678910 8123456789101234567891012345678910 7Sample Output:1098765431280864197523708641975237086419752370 十、按长度排序
Time Limit:1000MS Memory Limit:32768KDescription:是一些整数,它的结构是:第一行为一个整数N,表示后面有N个整数需要排序输出,先按长度排,如长度一样则按大小排,若遇到N等于零,则运行结束。 Sample Input:31231233332100000000000000010Sample Output:121233333 11000000000000000 十一、排列学生成绩
Time Limit:1000MS Memory Limit:32768KDescription:一些向量数据,表示许多学生的各门成绩。编程,从中挑出平均分数在60分以上的学生进行排序输出。 Sample Input:Zhangsan 90 85 77 25 63Lisi 58 73 66 85 90Wangwu 70 80 90 51 52Qianliu 80 63 58 52 50Chenqi 90 28 38 48 58Zhouba 40 70 70 33 55Sample Output:1 Lisi2 Wangwu3 Zhangsan 12、十二、倒置排序
Time Limit:1000MS Memory Limit:32768KDescription:将一些整数按倒置值排序后输出. 所谓倒置,是指把整数各位倒过来构成一个新数,例如:13倒置成了31. Input:第一行的整数N表示后面列出的组数。每组数的第一个整数n表示后面将有n个整数。(每组数据量不超80) Output:将每组数按倒置值进行排序输出.其每组数的结果占一行.行末无空格. Sample Input:24 83 13 24 364 99 100 123 12345Sample Output:13 83 24 36100 99 123 12345 十三、绩点计算
Time Limit:1000MS Memory Limit:32768KDescription:有一些班级学生的三门课程成绩,编程计算其绩点,并按绩点分数的高低排列。绩点计算公式为:(成绩小于60分,则该门课程的绩点为0) [(课程1 – 50)÷10×3 +(课程2 – 50)÷10×3 +(课程3 – 50)÷10×4]÷10 Sample Input:张三 89 62 71李四 98 50 80王五 67 88 91Sample Output:王五 67 88 91李四 98 50 80张三 89 62 71 十四、按日期排序
Time Limit:1000MS Memory Limit:32768KDescription:有一些日期,日期格式为“MM/DD/YYYY”。编程将其按日期大小排列。 Sample Input:12/31/200510/21/200302/12/200415/12/199910/22/200311/30/2005Sample Output:15/12/199910/21/200310/22/200302/12/200411/30/200512/31/2005 十五、按1的个数排序
Time Limit:1000MS Memory Limit:32768KDescription:有一些01字串,将其按1的个数的多少的顺序进行输出。 Sample Input:10011111000011011010101101100Sample Output:01110000001101101010110011111 十六、注释
Time Limit:1000MS Memory Limit:32768KDescription:给出一个C++源程序代码。请将其中的注释去掉。 Sample Input://====================== // simplest program //======================#include<iostream>using namespace std;//----------------------int main(){cout<<”hello world!\n”;}//--------------------- Sample Output:#include<iostream>using namespace std;int main(){cout<<”hello world!\n”;} 十七、最短距离的点
Time Limit:1000MS Memory Limit:32768KDescription:给出一些整数对,它们表示一些平面上的坐标点,给定一个点,求所有那些点到该点最短距离的点。结构为:第一个整数对为所给定的点,后面的整数对为所有其他的点。 Sample Input:9 21 01 10 01 22 1Sample Output:2 1 十八、最短距离的两点
Time Limit:1000MS Memory Limit:32768KDescription:给出一些整数对,它们表示平面上的点,求所有这些点中距离最近的两个点。结构为:每组数据的第一行只有一个整数N,表示后面有N个点。求这些点中的两点,以表明该两点是所有点中距离最短的。若N为0,则表示输入结束。 Sample Input:41 20 03 67 231 33 10 00Sample Output:(1,2) (0,0)(1,3) (3,1) 十九、到直线的最长距离
Time Limit:1000MS Memory Limit:32768KDescription:给定一根直线,给出一些坐标点,求这些坐标点到直线的最大距离。第一行有两个整数对,表示直线的两点,后面有一些整数对,那是给出的坐标点。结果保留三位小数。 Sample Input:1 2 3 43 810 107 2900 1Sample Output:636.396 二十、计算矩形面积
Time Limit:1000MS Memory Limit:32768KDescription:两个坐标点能确定一个矩形,请按矩形的面积大小进行排序输出。每一行给出两个坐标点,表示一个矩形。请按要求输出面积。 Sample Input:1 2 3 41 0 2 32 1 3 12 8 7 1Sample Output:03435注:ACM比赛非常注重输出格式。若输出格式错误则全题不能得分。 以下几个题训练基本输出语句的使用。二十一、粘墙“三角形”
Time Limit:1000MS Memory Limit:32768KDescription:输入一些正整数(≤26),编程输出以这些正整数为边长的附着墙而立的字母三角形。 Sample Input:37Sample Output:a aa abaabc a aa aba abca abcda abcdea abcdefaabcdefg 二十二、山形图
Time Limit:1000MS Memory Limit:32768KDescription:输入中含有若干组数据,每组数都包含一个字符c和一个正整数n(n≤50),表示边长为n图案为c的山形字符图。一个紧挨一个地打印所有这些山形字符图。 Sample Input:A 3M 9Sample Output: A AAAAAAAA M MMM MMMMM MMMMMMM MMMMMMMMM MMMMMMMMMMM MMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 二十三、织花纹布
Time Limit:1000MS Memory Limit:32768KDescription:输入中含有若干组数据,每组数据由四部分组成,第一个是花纹字符,后面三个是整数,分别表示宽度(<80的奇数),高度(≤40)和重复度(≤20)。请编程画出该花纹。 Sample Input:W 9 17 1E 15 6 2Sample Output:WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W W WWWWWWWWW W W W W WWWWWWWWWW EEEEEEEEEEEEEEE E E E E E E E E EEEEEEEEEEEEEEE E E E E E E E E EEEEEEEEEEEEEEEE E E E E E E E EEEEEEEEEEEEEEE E E E E E E E E EEEEEEEEEEEEEEE E E E E E E E EEEEEEEEEEEEEEEE 二十四、倚直线画圈
Time Limit:1000MS Memory Limit:32768KDescription:鲁迅先生笔下的阿Q连圈都画不好,现在我们借助编程手段,可以对准直线自动地按要求画圈,不亦乐乎?文本字符的圈虽然看上去有些粗糙,不过没有关系,只要是上下左右对称,粗细均匀,而且封闭就行。 Input:圈的内部总是一个正方形,外部包围着一定粗细的线条,角部不用画出来。给定的数据,每行为一组,包括用的字符笔,笔的粗细和圈内正方形的高度。如果输入数据中笔粗和高度都为0,则结束处理。 Output:每个圈应倚着边上一直线,直线字符为B,每个圈之间有一个空行,第一个圈前面无空行。 Sample Input:A 1 3F 3 5A 0 0 Sample Output:B AAABA ABA ABA AB AAA B FFFFFB FFFFFB FFFFFBFFF FFFBFFF FFFBFFF FFFBFFF FFFBFFF FFFB FFFFFB FFFFFB FFFFF 二十五、支票保护
Time Limit:1000MS Memory Limit:32768KDescription:计算机经常用于工资和帐号支付应用等支票写入系统。许多怪事常常出现。如每月工资支票上错误的多写一百万美元。由于人和机器的错误,使支票写入系统写出不正常数值。系统设计人员在系统中建立控制,防止发生出这种错误支票。另一个严重的问题是有些人故意改变支票金额,想窃取钱财。要防止改变支票金额,大多数支票写入系统采用支票保护(Check Protection)技术。一个常用的安全方法是写出支票金额的大写,即使支票的数字好改,大写金额也难篡改。编写一个程序,输入数字金额,输出大写金额。如112.43写成ONE HUNDRED TWELVE Dollars and 43/100。 Input:输入数据有若干,数据范围在0.00到999.99。 Output:对于每个数据输出其大写的英语表示。如12.45写成TWELVE Dollars and 45/100。如果是整数部分是零或一美元,则Dollar不加s。如果没有角分,则角分不用输出。 Sample Input:0.453456.89Sample Output:ZERO Dollar and 45/100THIRTY FOUR DollarsFIFTY SIX Dollars and 89/100 二十六、单词统计
Time Limit:1000MS Memory Limit:32768KDescription:你需要设计一个程序,将一篇文章中的所有单词分组并统计。
一篇文章是一连串的单词,每个单词占一行。当且仅当w中的字符通过某种重排列与v相同时,单词w和单词v属于同一个组。找出个数最多的5个组。
Input
输入包含许多由小写字母构成的单词,每行一个。
以EOF终止。
Output
输出个数最多的5组单词。如果少于5组,则把它们全部输出。
组与组之间,按单词数递减排序,若单词数相等,比较组内字典序最小的单词,字典序小的在先。
对每组,先输出组内单词数,再按字典序递增依次输出各单词,相同单词只输出一次。 Sample Input:undisplayedtraceteasingletonetaeatdisplayedcratecatercartecaretbetabeatbateateabetcaretcaretcaretSample Output:Group of size 8: caret carte cater crate trace .Group of size 4: abet bate beat beta .Group of size 4: ate eat eta tea .Group of size 1: displayed .Group of size 1: singleton . 二十七、统计天数
Time Limit:1000MS Memory Limit:32768KDescription:根据一些日期,以及日期上所做的标记,按条件统计其天数。 Input:输入数据含有不多于50个的具有格式“Mon. DD YYYY”的日期,有些日期后面可能标有*,每个日期占一行。 Output:统计任何月份中凡是25号的日期数,如果25号这一天后面标有*,则该天应加倍计算。 Sample Input:Oct. 25 2003Oct. 26 2003Sep. 12 2003*Juy. 25 2002*Sample Output:3Source:qianneng 二十八、艰辛的突围
Time Limit:1000MS Memory Limit:32768KDescription:在一场战役中,一队我方的士兵落入了敌人的包围圈,他们决定冒死突围出去,在突围的任意时刻,总会有一个士兵冲在最前面,引导着队伍前进。在突围的过程中,他们肯定要不断受到敌方的攻击,尤其冲在最前面的士兵受到的伤害最大。我们以一分钟为单位,最开始每个士兵都有相同的能量值E,突围路线的总长度D。士兵每分钟受到的伤害跟队伍的突围速度有关。假定队伍在某一分钟内突围的速度为v,那么冲在最前面的士兵在这一分钟里受到的总伤害为v2,而其他士兵受到的总伤害均为v。而且我们可以在每分钟开始的时候瞬时替换掉冲在最前面的士兵,让另一个士兵冲上去,其它的中间时刻是不允许调换的。 对于特定的某一分钟里,队伍的突围速度是稳定的,由此时冲在最前面的士兵决定,他可以任意选择一个速度v前进,但是要保证自己在这一分钟开始的时候剩余的能量e>=v2。现要你安排一种最优的调度方案,使得队伍突围出去的时间最少,当然在这个过程中可能会有些士兵会死掉,也许全部死掉。 Input:包含多组测试数据。每组测试数据包含三个整数N、E、D。分别表示士兵的个数、每个士兵初始的能量值和突围路线的总长度。 1<=N<=20,1<=E<=100,1<=D<=100。 Output:针对每组测试数据,输出最短需要多少时间才能突围出去,如果所需的最小时间是个浮点数,则向上取整。万一突围不出去,就直接输出0. Sample Input:2 17 7Sample Output:2 二十九、大整数加法
Time Limit:1000MS Memory Limit:32768KDescription:给定一些大数,请计算其和。 Input:输入数据中含有一些数据组(数量≤100),每组数据由一个整数n(n≤100)领衔,后跟n个大整数(0≤大数,大数位数≤200),若n=0则表示输入结束。 Output:输出每组数据所计算的大数和,每个结果单独占一行。 Sample Input:5123456789628799998056456456546545790Sample Output:5652057111507 三十、大整数乘法
Time Limit:5000MS Memory Limit:32768KDescription:给定一些大数,请计算其积。 Input:输入数据中含有一些整数对(对数≤1000),若某对整数(整数位数≤200)的值为0 0,则表示输入结束。 Output:每对整数对应一个乘法计算结果,输出该结果,每个结果输出完后应回车。 Sample Input:2 312 340 0Sample Output:6408 三十一、(1998年北美区ACM选拔赛试题)DNA SortingTime Limit:1000MS Memory Limit:32768KProblem: DNA排序 在一个序列中,“没排序”的一个尺度是无序对的总数。例如,在字母序列“DAABEC”中,“没排序”的尺度是5,因为D比它右边的4个字母大,而E比它右边的1个字母大。这个尺度被称为序列的倒位数量。序列“AACEDGG”只有一个倒位(E和D)――即它几乎是有序的――然而,序列“ZWQM”则有6个倒位(其序正好完全相反)。 你负责编排DNA字符串的序列(系列中只包含A,C,G和T四个字符)。然而,不是根据字母表顺序来编排,而是根据“没排序”程度即倒位数量来编排,从“排序最好”到“排序最不好”的顺序来编排。所有的字符串长度相同。问题包含多个测试案例! 多个测试案例前是一个正整数N,然后是一行空行,接下去是N个输入块。每个输入块的格式在问题中描述了。输入块之间用空行隔开。 2、输入描述 每个输入块的第一行包含两个整数:正整数n (0 < n <= 50),表示字符串的长度;另一个正整数m (1 < m <= 100),表示字符串的数目。下面就是m行,每行是一个长为n的字符串。 3、输出描述 输出输入数据中的字符串,按从“排序最好”到“排序最不好”的顺序排列。如果两个字符串的倒位数量相同,那么按它们在输入文件中的先后顺序输出。 4、输入样例 1 10 6AACATGAAGGTTTTGGCCAATTTGGCCAAAGATCAGATTTCCCGGGGGGAATCGATGCAT 5、输出样例 CCCGGGGGGAAACATGAAGGGATCAGATTTATCGATGCATTTTTGGCCAATTTGGCCAAA
推荐于2020-12-18
展开全部
1、(已验证!)计算铁路运费。已知从甲地到乙地,每张票托运行李不超过50公斤时,按每公斤0.13元,超过50公斤,超过部分按每公斤0.2元计算。输入行李重量w,计算运费y.#include <iostream>using namespace std;void main(){float money=0,weight;cout<<"请输入货物重量(单位:千克):";cin>>weight;if (weight<0)cout<<”数据错误!”<<endl;if (weight <= 50)money = weight * 0.13;else if (weight > 50)money = 50 * 0.13 + (weight - 50) * 0.2;cout<<"\n总费用是:"<<money<<endl;} 2、(已验证!)根据一元二次方程a*x*x+b*x+c=0求解方程。输入a、b、c的值,求x1、x2的实根.#include <iostream>#include <cmath>using namespace std;void main(){ double a,b,c,p,x1,x2,D; cout<<"请输入3个数:"<<endl; cout<<"a="; cin>>a; cout<<"b="; cin>>b; cout<<"c="; cin>>c; cout<<"方程为:"<<a<<"x^2+"<<b<<"x+"<<c<<"=0"<<endl; D=b*b-4*a*c; if (D<0) cout<<"方程无解!"<<endl; if (D==0) { p=-b/(2*a); x1=p+sqrt(D)/(2*a); cout<<"方程有两个相同的实根。"<<endl; cout<<"x1=x2="<<x1<<endl; } if (D>0) { p=-b/(2*a); x1=p+sqrt(D)/(2*a); x2=p-sqrt(D)/(2*a); cout<<"方程有两个不同的实根。"<<endl; cout<<"x1="<<x1<<endl<<"x2="<<x2<<endl; }} 3、(已验证!)分别使用for和while求n!.注解n!=1*2*3*...*n,n由键盘输入。For:#include <iostream>using namespace std;void main(){ int i,n,s; s=1; cout<<"input n: "; cin>>n; for(i=1;i<=n;i++) s=i*s; cout<<s<<endl;} While:#include <iostream>using namespace std;void main(){ int i,n,s; s=1; i=1; cout<<"input n: "; cin>>n; while(i<=n) { s=i*s; ++i; } cout<<s<<endl;} 4、(已验证!)百钱买百鸡。1只公鸡5元,1只母鸡3元,3只小鸡1元,现有100元钱要买100只鸡,有什么解法。分别使用三重循环和二重循环来解.鸡翁,鸡婆,鸡雏各:12、4、84只鸡翁,鸡婆,鸡雏各:8、11、81只鸡翁,鸡婆,鸡雏各:4、18、78只鸡翁,鸡婆,鸡雏各:0、25、75只(1).三重循环:#include <iostream>using namespace std;void main(){ const intcock=20,hen=33,chicken=100; intc,h,ck; for(c=0;c<=cock;c++){ for(h=0;h<=hen;h++){ for(ck=0;ck<=chicken;ck++){ if(((c+h+ck)==100)&&((c*5+h*3+ck/3)==100)&&((ck%3)==0)) cout<<"鸡翁,鸡婆,鸡雏各:"<<c<<"、"<<h<<"、"<<ck<<"只"<<endl; } } }} (2).两重循环:#include<iostream>using namespace std;void main(){ int c,h,ck; for(h=0;h<33;h++) for(ck=0;ck<100;ck++) { c=100-h-ck; if(5*c+h*3+ck/3==100 && ck%3==0&& h+ck<=100) cout<<"鸡翁,鸡婆,鸡雏各:"<<c<<"、"<<h<<"、"<<ck<<"只"<<endl;}} 5、(已验证!)求所有水仙花数。所谓水仙花数是指三位数,其各位数立方和等于该数。如153=1*1*1+5*5*5+3*3*3. (153 370 371 407)#include <iostream>using namespace std;void main(){ inta,b,c,d; for(d=100;d<1000;d++) { a=d/100; //分解出百位 b=d/10%10;//分解出十位 c=d%10;//分解出个位 if (d==a*a*a+b*b*b+c*c*c) { cout<<d<<""; } } cout<<endl;} 6、(已验证!)解数学灯迷。有以下算式 ABCD-CDC=ABC,其中ABCD均为一位非负整数,求ABCD的值。(1098)#include <iostream>using namespace std;void main(){ inta,b,c,d,e; for(e=1000;e<10000;e++) { a=e/1000; b=e/100%10; c=e/10%10; d=e%10; if (e-(c*100+d*10+c)==a*100+b*10+c) { cout<<e; } } cout<<endl;} 7、(已验证!)从键盘输入一个整数,判断此数是否为回文数。所谓回文数就是从左到右读与从右到左读是一样的数。如12321、7887等。#include <iostream>using namespace std;bool ifn(int x){ int m=0,n; n=x; while(n) { m=m*10+n%10; n=n/10; } if(m==x) return true; if(m!=x) return false;}void main( ){ int a; cout<<"输入一个数:"; cin>>a; if(ifn(a)) cout<<a<<"是回文数!"<<endl; else cout<<a<<"不是回文数!"<<endl;} 8、(已验证!)使用函数计算y=2*x+3,输入x,求y的值。#include <iostream>using namespace std;float y(int x){ return2*x+3;}void main(){ int x; cout<<"输入X:"; cin>>x; cout<<"Y="<<y(x)<<endl;} 9、(已验证!)使用递归函数,求99+97+95+...+3+1之和。(和是2500。)#include <iostream>using namespace std;int sum(long n,long m){ if(n==m) return(m); else return(m+sum(n,m-2));}void main(){ int n,m; cout<<"输入范围:(n~m):"<<endl; cout<<"n="; cin>>n; cout<<"m="; cin>>m; cout<<"从"<<n<<"到"<<m<<"的和为:"<<sum(n,m)<<endl;} 10、(已验证!)已知杨辉三角11 11 2 11 3 3 11 4 6 4 11 5 10 105 11 6 15 20 156 1.输出前13行的值.#include <iostream>using namespace std;void main(){ int a[11],i,j; a[1]=1; for(i=1;i<=13;i++) { a[i]=1; for(j=i-1;j>=2;j--) a[j]=a[j]+a[j-1]; for(j=1;j<=i;j++) cout<<a[j]<<""; cout<<"\n"; }}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |