找了两道不太复杂的题来试一下读取输入输出(先从简单的开始⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄)
这两个题的共同特点是:会读到一个数N,这个数N意味着接下来会有N行输入,并且要对每行的输入进行一些处理。
(更复杂的读取输入后续再更……)
1. 任务列表(360公司2017春招真题)
image.png来源:https://exercise.acmcoder.com/online/online_judge_ques?ques_id=3982&konwledgeId=42
题目描述
现在现在有一台机器,这台机器可以接收两种形式任务:(1)任务列表,任务列表里面有N个任务,对于第i个任务,机器在Ti时间开始执行,并在1个单位时间内做完。(2)临时任务,机器可以在任意时间接收一个临时任务,但任务列表里面的任务优先级要高于临时任务,也就是说当机器空闲的时候才会执行临时任务。
现在机器已经接收一个任务列表。接下来会有M个临时任务,我们想知道每个临时任务何时被执行。为了简化问题我们可以认为这M个临时任务是独立无关即任务是可以同时执行的,互不影响的。
太长不看的解释:
1、第一行先读N和M,虽然N好像后续没什么用,M是临时任务的个数(行数)
2、任务列表里面找没出现的数字,比如样例12356,没出现的就是4!那么临时任务里所有≤4的 :3,2,1,4 ,的输出都是4!!
(怎么找这个间断点,刚开始想的是用数字数组,后来想的是前一个数字+1 !=后面的数字,都有点麻烦)
临时任务里大于4的,那就要等任务列表里的任务都执行完再执行了,所以5、6对应的输出就是6+1=7
注意这种读进来一个数N,代表着接下来有N行,并且每行输入完就进行处理的这种,在读那N行的时候可以用: for i in range(N)
大神题解地址:https://exercise.acmcoder.com/online/online_judge_answer?ques_id=3982&konwledgeId=42#
image.png
if __name__ == "__main__":
while 1:
N,M = map(int,input().split())
L = list(map(int,input().split())) #任务列表
for i in range(M):
x = int(input())
while True:
if x in L:
x +=1
else:
print(x)
break
2. 动脑子认老乡
image.pnghttps://exercise.acmcoder.com/online/online_judge_ques?ques_id=9579&konwledgeId=137&opencustomeinput=true
大学的同学来自全国各地,对于远离家乡步入陌生大学校园的大一新生来说,碰到老乡是多么激动的一件事,于是大家都热衷于问身边的同学是否与自己同乡,来自新疆的小赛尤其热衷。但是大家都不告诉小赛他们来自哪里,只是说与谁是不是同乡,从所给的信息中,你能告诉小赛有多少人确定是她的同乡吗?
太长不看的解释:
1、分析第二个样例,5的意思是有5个人,4的意思是有4组关系,就是接下来要有4行(期待地搓手手)
2、1 2 1 的意思是 1同学 和 2同学, 是同乡;3 4 0的意思是3同学和4同学不是同乡。本人是1同学。要找本人的同乡。
比如这个第二个样例, 1和2是同乡,2和5是,3和2是,那么1的同乡有2,3,5,一共3个人。要输出3
看了几个大神的答案感觉这个理解起来很适合我
image.png
https://exercise.acmcoder.com/online/online_judge_answer?ques_id=9579&konwledgeId=137#
把解释写在了后面的代码注释里:
if __name__ == "__main__":
while 1:
#N个人,M组关系,即接下来有几行
N,M = map(int,input().split())
res = [] #新建一个同乡会
for i in range(M): #有M行即将到达
a, b, c = map(int,input().split())
if c == 1: #如果是同乡关系
r = [a,b] if a<b else[b,a] #升序,比如[3,2]就要转成[2,3]
res.append(r) #存入同乡会
#终于读完了这M行
s = set() #集合是去重的
s.add(1)#把主人公放进集合里
res.sort() #升序排序
for i in res: # 是同乡关系的有几组
if i[0] in s: #如果新的同乡关系里出现了已是同乡的人
s.add(i[1]) #把跟主人公是同乡关系的人放进集合
print(len(s)-1) #s里面是主人公和主人公的同乡,所以要减去主人公
网友评论