今日题单
- 刮刮彩票
- 字母串
- 胎压监测
- 别再来这么多猫娘了!
- 吃火锅
- 前世档案
- 统计数字字符和空格
- 随机输一次
代码示例
刮刮彩票
price = [10000, 36, 720, 360, 80, 252, 108, 72, 54, 180, 72, 180, 119, 36, 306, 1080, 144, 1800, 3600]
lst = []
x = 0
for i in range(3):lst.append(list(map(int, input().split())))x += sum(lst[i])
x = 45 - x
for i in range(3):if 0 in lst[i]:lst[i][lst[i].index(0)] = x
for i in range(3):a, b = map(int, input().split())print(lst[a-1][b-1])
c = int(input())
ans = 0
if c <= 3:for i in range(3):ans += lst[c-1][i]
elif c <= 6:for i in range(3):ans += lst[i][c-4]
elif c == 7:for i in range(3):ans += lst[i][i]
else:for i in range(3):ans += lst[i][2 - i]
print(price[ans-6])
字母串
a1 = int(input())
def hefa(x):for i in range(len(x)-1):a,b = ord(x[i]),ord(x[i+1])if (97<=a<=122 and (b!=(a-32) and b!=a-1)):return Falseif (65<=a<=90 and (b!=(a+32) and b!=a+1)):return Falseelse:return True
while a1:a1 -= 1a2 = str(input())if hefa(a2):print("Y")else:print("N")
胎压监测
lf, rf, lb, rb, wr, area = map(int, input().split())
lst = [lf, rf, lb, rb]if min(lst) >= wr and max(lst) - min(lst)<= area:print('Normal')
else:p = 0for i in range(4):if max(lst) - lst[i] > area or lst[i] < wr:if not p:p = i+1else:p = 0breakif p:print('Warning: please check #%d!' % p)else:print('Warning: please check all the tires!')
别再来这么多猫娘了!
n = int(input())
lst = []
for i in range(n):lst.append(input())
k = int(input())
txt = input()
cnt = 0
for i in range(n):cnt += txt.count(lst[i])txt = txt.replace(lst[i], '-')
if cnt >= k:print(cnt)print('He Xie Ni Quan Jia!')
else:txt = txt.replace('-', '<censored>')print(txt)
吃火锅
s = input()
cnt_0 = cnt_1 = fi = 0
while s != '.':cnt_0 += 1if 'chi1 huo3 guo1' in s:cnt_1 += 1if not fi:fi = cnt_0s = input()
print(cnt_0)
if cnt_1:print(fi, cnt_1)
else:print('-_-#')
前世档案
N, M = map(int, input().split())
for i in range(M):l = 1r = 2 ** Nm = (l + r) // 2s = input()for j in range(N):if s[j] == 'y':r = mm = (l + r) // 2else:l = m + 1m = (l + r) // 2print(m)
统计数字字符和空格
s = input()
blank = digit = other = 0
for i in s:if i.isspace():blank += 1elif i.isdigit():digit += 1else:other += 1
print('blank = %d, digit = %d, other = %d' % (blank, digit, other))
随机输一次
fun1 = {'ChuiZi': 'Bu', 'Bu': 'JianDao', 'JianDao': 'ChuiZi'}
fun2 = {'ChuiZi': 'JianDao', 'Bu': 'ChuiZi', 'JianDao': 'Bu'}
lst = list(map(int, input().split()))
temp = input()
p = x = 0
k = lst[1]
while temp != 'End':if p < k:p += 1print(fun1[temp])else:p = 0x = (x + 1) % lst[0]k = lst[x + 1]print(fun2[temp])temp = input()
明日题单
吉老师的回归
曾经在天梯赛大杀四方的吉老师决定回归天梯赛赛场啦!
为了简化题目,我们不妨假设天梯赛的每道题目可以用一个不超过 500 的、只包括可打印符号的字符串描述出来,如:
Problem A: Print "Hello world!"
。众所周知,吉老师的竞赛水平非常高超,你可以认为他每道题目都会做(事实上也是……)。因此,吉老师会按照顺序看题并做题。但吉老师水平太高了,所以签到题他就懒得做了(浪费时间),具体来说,假如题目的字符串里有
qiandao
或者easy
(区分大小写)的话,吉老师看完题目就会跳过这道题目不做。现在给定这次天梯赛总共有几道题目以及吉老师已经做完了几道题目,请你告诉大家吉老师现在正在做哪个题,或者吉老师已经把所有他打算做的题目做完了。
提醒:天梯赛有分数升级的规则,如果不做签到题可能导致团队总分不足以升级,一般的选手请千万不要学习吉老师的酷炫行为!
输入格式:
输入第一行是两个正整数 N,M (1≤M≤N≤30),表示本次天梯赛有 N 道题目,吉老师现在做完了 M 道。
接下来 N 行,每行是一个符合题目描述的字符串,表示天梯赛的题目内容。吉老师会按照给出的顺序看题——第一行就是吉老师看的第一道题,第二行就是第二道,以此类推。
输出格式:
在一行中输出吉老师当前正在做的题目对应的题面(即做完了 M 道题目后,吉老师正在做哪个题)。如果吉老师已经把所有他打算做的题目做完了,输出一行
Wo AK le
。输入样例 1:
5 1 L1-1 is a qiandao problem. L1-2 is so...easy. L1-3 is Easy. L1-4 is qianDao. Wow, such L1-5, so easy.
输出样例 1:
L1-4 is qianDao.
输入样例 2:
5 4 L1-1 is a-qiandao problem. L1-2 is so easy. L1-3 is Easy. L1-4 is qianDao. Wow, such L1-5, so!!easy.
输出样例 2:
Wo AK le
大笨钟的心情
有网友问:未来还会有更多大笨钟题吗?笨钟回复说:看心情……
本题就请你替大笨钟写一个程序,根据心情自动输出回答。
输入格式:
输入在一行中给出 24 个 [0, 100] 区间内的整数,依次代表大笨钟在一天 24 小时中,每个小时的心情指数。
随后若干行,每行给出一个 [0, 23] 之间的整数,代表网友询问笨钟这个问题的时间点。当出现非法的时间点时,表示输入结束,这个非法输入不要处理。题目保证至少有 1 次询问。
输出格式:
对每一次提问,如果当时笨钟的心情指数大于 50,就在一行中输出
心情指数 Yes
,否则输出心情指数 No
。输入样例:
80 75 60 50 20 20 20 20 55 62 66 51 42 33 47 58 67 52 41 20 35 49 50 63 17 7 3 15 -1
输出样例:
52 Yes 20 No 50 No 58 Yes
试试手气
我们知道一个骰子有 6 个面,分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态,即它们朝上一面的点数,让你一把抓起摇出另一套结果。假设你摇骰子的手段特别精妙,每次摇出的结果都满足以下两个条件:
- 1、每个骰子摇出的点数都跟它之前任何一次出现的点数不同;
- 2、在满足条件 1 的前提下,每次都能让每个骰子得到可能得到的最大点数。
那么你应该可以预知自己第 n 次(1≤n≤5)摇出的结果。
输入格式:
输入第一行给出 6 个骰子的初始点数,即 [1,6] 之间的整数,数字间以空格分隔;第二行给出摇的次数 n(1≤n≤5)。
输出格式:
在一行中顺序列出第 n 次摇出的每个骰子的点数。数字间必须以 1 个空格分隔,行首位不得有多余空格。
输入样例:
3 6 5 4 1 4 3
输出样例:
4 3 3 3 4 3
样例解释:
这 3 次摇出的结果依次为:
6 5 6 6 6 6 5 4 4 5 5 5 4 3 3 3 4 3
斯德哥尔摩火车上的题
上图是新浪微博上的一则趣闻,是瑞典斯德哥尔摩火车上的一道题,看上去是段伪代码:
s = '' a = '1112031584' for (i = 1; i < length(a); i++) {if (a[i] % 2 == a[i-1] % 2) {s += max(a[i], a[i-1])} } goto_url('www.multisoft.se/' + s)
其中字符串的
+
操作是连接两个字符串的意思。所以这道题其实是让大家访问网站www.multisoft.se/112358
(注意:比赛中千万不要访问这个网址!!!)。当然,能通过上述算法得到
112358
的原始字符串a
是不唯一的。本题就请你判断,两个给定的原始字符串,能否通过上述算法得到相同的输出?输入格式:
输入为两行仅由数字组成的非空字符串,长度均不超过 104,以回车结束。
输出格式:
对两个字符串分别采用上述斯德哥尔摩火车上的算法进行处理。如果两个结果是一样的,则在一行中输出那个结果;否则分别输出各自对应的处理结果,每个占一行。题目保证输出结果不为空。
输入样例 1:
1112031584 011102315849
输出样例 1:
112358
输入样例 2:
111203158412334 12341112031584
输出样例 2:
1123583 112358
剪切粘贴
使用计算机进行文本编辑时常见的功能是剪切功能(快捷键:Ctrl + X)。请实现一个简单的具有剪切和粘贴功能的文本编辑工具。
工具需要完成一系列剪切后粘贴的操作,每次操作分为两步:
- 剪切:给定需操作的起始位置和结束位置,将当前字符串中起始位置到结束位置部分的字符串放入剪贴板中,并删除当前字符串对应位置的内容。例如,当前字符串为
abcdefg
,起始位置为 3,结束位置为 5,则剪贴操作后, 剪贴板内容为cde
,操作后字符串变为abfg
。字符串位置从 1 开始编号。- 粘贴:给定插入位置的前后字符串,寻找到插入位置,将剪贴板内容插入到位置中,并清除剪贴板内容。例如,对于上面操作后的结果,给定插入位置前为
bf
,插入位置后为g
,则插入后变为abfcdeg
。如找不到应该插入的位置,则直接将插入位置设置为字符串最后,仍然完成插入操作。查找字符串时区分大小写。每次操作后的字符串即为新的当前字符串。在若干次操作后,请给出最后的编辑结果。
输入格式:
输入第一行是一个长度小于等于 200 的字符串 S,表示原始字符串。字符串只包含所有可见 ASCII 字符,不包含回车与空格。
第二行是一个正整数 N (1≤N≤100),表示要进行的操作次数。
接下来的 N 行,每行是两个数字和两个长度不大于 5 的不包含空格的非空字符串,前两个数字表示需要剪切的位置,后两个字符串表示插入位置前和后的字符串,用一个空格隔开。如果有多个可插入的位置,选择最靠近当前操作字符串开头的一个。
剪切的位置保证总是合法的。
输出格式:
输出一行,表示操作后的字符串。
输入样例:
AcrosstheGreatWall,wecanreacheverycornerintheworld 5 10 18 ery cor 32 40 , we 1 6 tW all 14 18 rnerr eache 1 1 e r
输出样例:
he,allcornetrrwecaneacheveryGreatWintheworldAcross
N个数求和
本题的要求很简单,就是求
N
个数字的和。麻烦的是,这些数字是以有理数分子/分母
的形式给出的,你输出的和也必须是有理数的形式。输入格式:
输入第一行给出一个正整数
N
(≤100)。随后一行按格式a1/b1 a2/b2 ...
给出N
个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。输出格式:
输出上述数字和的最简形式 —— 即将结果写成
整数部分 分数部分
,其中分数部分写成分子/分母
,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。输入样例1:
5 2/5 4/15 1/30 -2/60 8/3
输出样例1:
3 1/3
输入样例2:
2 4/3 2/3
输出样例2:
2
输入样例3:
3 1/3 -1/6 1/8
输出样例3:
7/24
A-B
本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。
输入格式:
输入在2行中先后给出字符串A和B。两字符串的长度都不超过104,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
输出格式:
在一行中打印出A−B的结果字符串。
输入样例:
I love GPLT! It's a fun game! aeiou
输出样例:
I lv GPLT! It's fn gm!
点赞
微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。
输入格式:
输入在第一行给出一个正整数N(≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1⋯FK”,其中1≤K≤10,Fi(i=1,⋯,K)是特性标签的编号,我们将所有特性标签从1到1000编号。数字间以空格分隔。
输出格式:
统计所有被点赞的博文中最常出现的那个特性标签,在一行中输出它的编号和出现次数,数字间隔1个空格。如果有并列,则输出编号最大的那个。
输入样例:
4 3 889 233 2 5 100 3 233 2 73 4 3 73 889 2 2 233 123
输出样例:
233 3