1039 Course List for Student
题目大意:给出待查询人数和学生的选课情况,按查询顺序输出每个学生的选课情况
简单的模拟,键值对dict即可。一开始最后一个测试点超时,原因是for…in语句的使用之后还是要判断下标,改成下标索引就能过了,但是测试点1的非零返回还是没找到原因,可能是pat后台对python检测有点问题吧,相同的做法C++完美AC
n,k=map(int,input().split())
select_courses={}
for i in range(k):
course,num=map(int,input().split())
name=input().split()
for j in name:
if j not in select_courses:
select_courses[j]=[course]
else:
select_courses[j].append(course)
query=input().split()
for i in range(len(query)):
if query[i] in select_courses:
total=len(select_courses[query[i]])
select_courses[query[i]].sort()
else:
total=0
print(query[i],total,end="")
if total!=0:
for j in select_courses[query[i]]:
print(" "+str(j),end="")
if i!=len(query)-1:
print()
这篇博客讨论了一道编程题目的解决方案,涉及Python和C++两种语言。题目要求根据学生选课情况,按查询顺序输出每个学生的课程。作者通过Python实现了一个键值对字典的模拟选课系统,但遇到超时问题,通过优化遍历方式解决。同时,作者提到C++版本的代码顺利通过所有测试点,暗示Python在某些特定场景下可能效率较低。博客重点在于编程语言的效率比较和问题解决策略。
2136

被折叠的 条评论
为什么被折叠?



