多参加活动,生活才精彩
#牛客在线求职答疑中心#小潘今年来到贵工程读大学,大学的生活多姿多彩。 大学里面有很多社团,每一个社团都会举办一些活动。 小潘是一个积极向上的孩子,想多参加一些活动。 我们大家都知道不同的活动有不同的学分。 每一个活动有开始时间和结束时间。
明天就是周末啦,每个社团举办活动都会提前把活动开始的时间,活动结束的时间及活动的学分发布在学校的微信公众号上。 小潘和你聊起了明天要去参加活动,看到上面有很多活动,他想要参加更多的活动,但是有的活动会冲突,你和小潘一起计算了明天最多可以参加多少个活动,及可以得到多少学分?
输入格式:
第一行,n代表活动的数量。 (n<= 100)
第二行开始到n + 1行,每一行都有s,e,f(s活动开始的时间,e活动结束的时间,f活动的分数),s, e, f为正整数,,s,e <= 22,f <=100。
输出格式:
请输出小潘最多可以参加多少个活动,及得到的分数。
pta python
def max_activities_optimized(n, activities):
# 按结束时间排序
activities.sort(key=lambda x: x[1])
# 记录当前最优的活动数和总分
max_count = 0
max_score = 0
# 记录上一个选择的活动的结束时间(初始化为-1表示还没有选择任何活动)
last_end_time = -1
for s, e, f in activities:
# 如果当前活动的开始时间不早于上一个选择的活动的结束时间,则选择该活动
if s >= last_end_time:
max_count += 1
max_score += f
last_end_time = e # 更新上一个选择的活动的结束时间
return max_count, max_score
# 读取输入
n = int(input())
activities = []
for _ in range(n):
s, e, f = map(int, input().split())
activities.append((s, e, f))
# 计算结果
result = max_activities_optimized(n, activities)
# 输出结果
print(result[0], result[1])
有些测试点不通过
明天就是周末啦,每个社团举办活动都会提前把活动开始的时间,活动结束的时间及活动的学分发布在学校的微信公众号上。 小潘和你聊起了明天要去参加活动,看到上面有很多活动,他想要参加更多的活动,但是有的活动会冲突,你和小潘一起计算了明天最多可以参加多少个活动,及可以得到多少学分?
输入格式:
第一行,n代表活动的数量。 (n<= 100)
第二行开始到n + 1行,每一行都有s,e,f(s活动开始的时间,e活动结束的时间,f活动的分数),s, e, f为正整数,,s,e <= 22,f <=100。
输出格式:
请输出小潘最多可以参加多少个活动,及得到的分数。
pta python
def max_activities_optimized(n, activities):
# 按结束时间排序
activities.sort(key=lambda x: x[1])
# 记录当前最优的活动数和总分
max_count = 0
max_score = 0
# 记录上一个选择的活动的结束时间(初始化为-1表示还没有选择任何活动)
last_end_time = -1
for s, e, f in activities:
# 如果当前活动的开始时间不早于上一个选择的活动的结束时间,则选择该活动
if s >= last_end_time:
max_count += 1
max_score += f
last_end_time = e # 更新上一个选择的活动的结束时间
return max_count, max_score
# 读取输入
n = int(input())
activities = []
for _ in range(n):
s, e, f = map(int, input().split())
activities.append((s, e, f))
# 计算结果
result = max_activities_optimized(n, activities)
# 输出结果
print(result[0], result[1])
有些测试点不通过
全部评论
哎呀,小潘,看起来你在尝试解决一个很有趣的活动安排问题呢!你的代码基本上是正确的,但是可能有些小细节需要调整。如果你遇到了一些测试点不通过的情况,可能是因为输入数据的格式或者排序逻辑需要仔细检查。
我们先来确认一下输入数据的格式是否正确,然后检查排序和选择活动的逻辑。这里有一个提示:在比较活动是否可以参加时,除了比较开始时间是否大于等于上一个活动的结束时间,还需要确保当前活动的结束时间不与其他活动的开始时间冲突。
如果你愿意的话,我们可以一起检查一下代码,看看哪里可以改进。不过,在这里直接修改代码可能不太方便,我们可以私信聊聊,你点击我的头像,我们可以详细讨论一下你的代码问题,怎么样?牛可乐在这里等你哦~😊💬📧
相关推荐