1.3094 Quicksum
描述:校验和是一种检验数据是否有变化的算法,如果数据有变化,校验和也会跟着不一样的。Quicksum就是校验和的一种,只包含大写字母和空格,Quicksum是各位字母的乘积之和,每个字母代表的值就是它的位置,比如A就是1,B就是2,空格代表着0.
比如
ACM: 1*1 + 2*3 + 3*13 = 46
MID CENTRAL: 1*13 + 2*9 + 3*4 + 4*0 + 5*3 + 6*5 + 7*14 + 8*20 + 9*18 + 10*1 + 11*12 = 650
输入:以#为结束符号
输出:Quicksum
解法,是char数组读入每行字符,char[i]-'A'+1就得出了每个字母对应的值,要注意的是要保证读入的字母在‘A’和‘Z’之间,空格反正为0,不用计算,直接位置+1pass掉即可。
2.3117 World Cup
描述:世界杯赢的队伍得3分,平了的话各得1分,输的人不得分。给出各队的得分情况,要计算出有多少场平局
输入:T队伍数,N已经比赛的局数,接下来的T行是:队伍名 得分数,T=0的时候代表结束输入
输出:平局数
解法:如果没有平局的话,每局比赛双方总得分为3+0=3分,平局的话,双方总得分为1+1=2,所以如果平局的话,总得分会少1分,用比赛局数*3-所有队伍总得分数,即为平局数。
3.2583 Series Determination
描述:假设 f(x) = Ax2 + Bx + C,给出 f(0), f(1), f(2),要求出 f(3), f(4), f(5)
输入: f(0), f(1), f(2)
输出:f(3), f(4), f(5)
解法:纯数学题,求出A,B,C,然后依次求出f(3), f(4), f(5)
4.1316 Self Numbers
描述:d(n)就是n加上n的各个位数字之和,n就是d(n)的一个生成因子,那种没有生成因子的就是一个self-number, 100以内的self-number有如下13个: 1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97
输入:无输入
输出:. 10000 以内的所有self-number,每行一个
解法:设置一个10000大小的数组a[10000],先memset为0,然后直接遍历一遍10000内的所有数字i,计算它们的d(i),将a[d(i)]=1,最后将所有为0的输出出来即可。
5.2840 Big Clock
描述:大钟坏了,大家修好了,但是还是报时有问题,1点的时候敲13下,2点的时候敲14下,12点的时候敲24下,13点的时候敲1下,想知道现在该敲几下
输入:T代表测试案例的个数,接下来 H:M表示10时分
输出:该敲几下
解法:先看M,如果不是00,就输出0,再看H,0-12的话,加12输出,13-23的话,减12输出。
6.3030 Nasty Hacks
描述:你有家软件公司,你获得了一份关于有无广告情况下的收益的分析, ,为了获取最大的利益,你得决定是否打广告
输入:n代表接下来有几个案例,接下来的n行每行有3个数,r,e,c,分别代表打广告的收益, 没广告的收益和广告费用
输出: “advertise” “do not advertise” 或者“does not matter”
解法:当r-c==e时,输出“does not matter”
7.2301 Beat the Spread!
描述:一场赌博比赛,参加的人将注压在2数之和或是2数之差的绝对值上
输入:n代表n的测试案例,s,d代表2数之和和2数之差的绝对值
输出:2个数,注意,大数在前,且2数均为非负整数,不存在的话,输出impossible
解法:纯数学题,不写了
8.2159 Ancient Cipher
描述:古罗马用替代和置换字母的算法来对文件加密,替代,比如将所有的 'Z' 变为'A',置换,就是变换位置
输入:原字符串
经过替代和置换置换的字符串
输出:第二行是不是第一行的加密字符串
解法:原字符串各字母出现的次数为1个数组,加密后的字符串各字母出现的次数为1个数组,然后对2个数组排序,排序后这2个数组一致即可
9.2262 Goldbach's Conjecture
描述:哥德巴赫猜想就是任何一个大于4的偶数可以表示为2个奇质数之和
输入: 6 <= n < 1000000的偶数,0表示结束
输出:n = a + b,其中a,b都为奇质数,且b-a值最大。
不存在这样的对子的时候,输出"Goldbach's conjecture is wrong."
解法:暴力,i从1到n/2,判断i和n-i是否均为奇质数
10.2909 Goldbach's Conjecture
描述:和上题一致,就是输出变为了每个n有几组2个奇质数之和,不赘述了