只会做ABCDEF简单题,难题GHI不会做就没办法写了。
Problem A: 签到
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 83 Solved: 44
[ Submit][ Status][ Web Board]
Description
ACM比赛最有趣的就是签到题了,参赛选手们为了抢签到题的FB,甚至采取了秒写代码不调试直接提交代码的做法。当然这种做法极具风险,一般来说,提交结果只有两种,AC跟CE,就是要么通过,要么编译错误。不过,前阵子貌似也有比较例外的情况,花式WA的做法,把广外ACM的某位师兄气了个半死……
你的签到任务就是,求两个整数的乘积。祝你签到成功^_^
Input
第一行先输入一个正整数 T(1 <= T <= 10000),表示有T组数据。
接下来T行,每行有两个数字,这些数字都是正整数,且最大不超过1000。
Output
对于每组数据,输出一个数字表示计算结果。
Sample Input
3
2 4
19 33
1000 100
Sample Output
8
627
100000
略
FAQ http://t.cn/zjHKbmN Linux问题看http://t.cn/aWnP1n
Problem B: 2018
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 100 Solved: 43
[ Submit][ Status][ Web Board]
Description
很久很久以前,long long long long long long ago……
传说在A国,国王在他临终前,把很多宝藏,藏到了一个密室中,并且在这个密室加了锁。而解开这个锁,只需要站在密室门前,大声说出一个数字,如果数字对了,门就会打开。但如果说错了,不好意思,陷阱就会启动。国王只留下了一串文字,里面包含了阿拉伯数字和大小写字母,显得杂乱无章。多年以来,没有人能解开这个谜题。终于,有一位考古学家解开了,他发现,最终的数字,就是用这串文字里的字符去拼凑2018这个数字,能拼到多少个,答案就是多少。现在这个任务交给你了,请你破解出隐藏在文字串中的信息。
Input
第一行先输入一个正整数 T(1 <= T <= 100),表示有T组数据。
每组数据就一行,一个字符串,里面只出现阿拉伯数字,以及大小写字母。长度不超过100000。
Output
对于每组数据,输出一个数字,代表用这个字符串能拼凑出多少个2018。
Sample Input
4
2X0y1z8
8102201aa801ddd288
222000111888abcdefg
201WSAD
Sample Output
1
3
3
0
HINT
解:扫一遍用一个数组记录2018分别出现的次数,输出最小。
Problem C: 聪哥的烦恼
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 124 Solved: 38
[ Submit][ Status][ Web Board]
Description
聪哥很喜欢玩codeforces,一款码农的大型对战网游,全球同服。在这个游戏里,每个玩家都有一个rating,新玩家都会有一个初始的rating,根据每场对战的成绩,rating会上升或下降。而聪哥,有时候不小心就玩脱翻车了,rating掉到低于初始分了,聪哥就会……选择重新注册一个号……到现在,聪哥已经注册了N个账号。
有一天,codeforces举办了一个活动,但是这次必须两个人组队参加,这时候,聪哥有一个大胆的想法,决定拿出他那堆账号,其中两个拿出来组队,然后单挑!但聪哥此时还有一个想法,他希望这两个账号的rating尽可能接近,也就是两个rating的差的绝对值尽可能小。而现在聪哥忙着准备比赛了,他把这个任务交给你了,请告诉聪哥,他最接近的两个账号的rating的差的绝对值是多少。
Input
第一行输入一个T,表示T组数据。
每组数据输入两行,第一行是一个正整数N,表示聪哥有N个账号。
第二行输入N个正整数,表示各个账号的rating。
数据范围:
1 <= T <= 100
2 <= N <= 100000
1 <= rating <= 1000000000
Output
对于每组数据,输出一个数字,表示rating中差的绝对值的最小值。
Sample Input
3
5
1000 2000 1100 1500 1400
3
1000 1000 1000
8
2 4 6 40 20 11 13 15
Sample Output
100
0
2
HINT
解:快排然后扫一遍记录两两之间差的最小值
Problem D: 数学题
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 90 Solved: 12
[ Submit][ Status][ Web Board]
Description
AC哥在想一个数学题,这个题目是这样的,有很多根火柴,不同火柴的长短不一样。第i根火柴,只点燃其中一端开始燃烧,需要ti的时间,而如果一开始就同时点燃两端,则只需要0.5*ti的时间。我们只允许在一开始选择点燃一端,或者同时点燃两端,不允许在其它地方点燃,也不允许燃烧到中途才点燃两一端。如果我们在一根火柴燃烧完立刻燃烧另一根,假设为j(假设中间不需要间隔,也没有时间上的交叉),就能利用这两个火柴测量出ti+tj 或ti + 0.5*tj 或 0.5*ti + tj 或 0.5*ti+0.5*tj这些时间。
现在问题来了,已知N根火柴各自的ti,AC哥想知道能否用它们测量出一个时间A,如果能测出来,他希望用的火柴数最少。
Input
第一行输入一个T,表示有T组数据。
每组数据输入占两行,第一行为两个整数N和A,表示火柴数量,以及AC哥要测量的时间。
接下来一行是N个正整数,表示每根火柴对应的燃烧时间ti。
数据范围:
1 <= T <= 20
1 <= N <= 1000
1 <= A <= 1000
2 <= ti <= 1000,且ti均为偶数。
Output
对于每组数据,先输出“Case #k: result”,k表示第k组数据,从1开始。(注意冒号后面有一个空格)
如果能够测量出A,则result为所需的最少的火柴数量。
否则,result为“No Solution!”
具体请参考样例。
Sample Input
3
2 5
6 2
4 10
2 2 2 2
5 11
2 2 2 16 20
Sample Output
Case #1: 2
Case #2: No Solution!
Case #3: 2