每日一练-游戏通关时间最短

每日一练-游戏通关时间最短

通关时间最短

🍀题目描述🌿解题思路🌸Python源码📧Summary

📆Date: 2023年1月3日 🎬Author: 小 y 同 学 📃Classify: 蓝桥杯每日一练 🔖Language: Python

🍀题目描述

题意 一个视频游戏有n个关卡,每个关卡需要看ai分钟视频和玩bi分钟才可以通关。必须将前面的关卡通过后,你才能接着玩后面的关卡,当你玩过一个关卡后,你可以跳过前面的视频直接玩这个关卡。现在有人想通关x次,通过的关卡可以任意选择,请问他至少要用多少时间。

输入格式 第一行包括两个正整数n,x,其中

1

n

2

×

1

0

5

,

1

x

1

0

9

1\le n\le 2\times10^5,\,1\le x\le 10^9

1≤n≤2×105,1≤x≤109 接下来n行每行两个整数ai,bi,其中

1

A

i

,

B

i

1

0

9

1\le A_i ,B_i\le 10^9

1≤Ai​,Bi​≤109

输出格式 一个正整数表示答案

样例输入1

3 4

3 4

2 3

4 2

样例输出1

18

样例输入2

10 1000000000

3 3

1 6

4 7

1 8

5 7

9 9

2 4

6 4

5 1

3 1

样例输出2

1000000076

🌿解题思路

题目梳理 初次读题并没有看懂意思,但是仔细梳理能知道题目的大概意思是:有一个包含n个关卡的看视频+玩游戏的游戏,通过关卡的条件是看ai分钟的视频+玩bi分钟的游戏,其他什么条件也没有,必须按照关卡的顺序来玩游戏;已通关的游戏可以再次玩但是第二次玩就不需要看ai分钟的视频直接消耗的是bi分钟的游戏时长。我们需要解决的就是在通关次数x(已经通关的关卡再次通关也计入)的前提下,所消耗的时间最少,输出最少的时间。数据输入 n,x直接常用套路输入语句n, x = map(int, input().split())然后小y是将ai和bi放在一个列表中然后添加到整个大列表中的。核心处理 首先我们通过观察可以发现:最优解一定是发生在通过了前j个关卡+第j个关卡玩x-j次这种情况,(不可能存在我玩到第j关,然后之前的某个关卡的bi较小,所以剩余的次数我一直玩那个关卡;因为如果是这个情况的话,何不直接以那个bi较小的关卡作为最终重复通关的关卡?);如果这个可以理解的话,我们可以通过计算通过的最后一关也就是第j关从1到n的所有类似最优解的结构的结果,从这些结果中找出最小值即可。本程序中需要注意j是从第0个关卡开始计算的。

🌸Python源码

# _*_coding:utf-8_*_

# created by cy on 2023/1/3

def solve():

# 数据输入

result = [] # 计算结果存储

n, x = map(int, input().split())

ab_li = []

# ai,bi的输入

for k in range(n):

tem = list(map(int, input().split()))

ab_li.append(tem)

Num = 0 # Num存储第一次玩关卡的分钟总和

for j in range(n):

Num += sum(ab_li[j])

# sun_存储Num加上最后一个关卡重复玩的时间需要注意j从0开始计数

sum_ = Num + (x - 1 - j) * ab_li[j][1]

result.append(sum_)

print(min(result))

if __name__ == "__main__":

solve()

📧Summary

小y的今日一练到此画上了句号,对于这题,小y的思路也仅仅局限于此,欢迎友友们多给建议🌼🌼🌼 有兴趣一起学习编程的小伙伴可以私聊小y一起学习,小y在Python,c/c++和matlab语言上均有一定的基础😜😜😜

欢迎您的点赞👍+收藏🎁+关注❤ 😁😁😁

相关推荐

PS+会员迎涨价后首次打折,附历史优惠汇总
beat365体育亚洲网页版

PS+会员迎涨价后首次打折,附历史优惠汇总

📅 08-01 👁️ 3728
奇迹mu最后一下判定?奇迹MU无赖状态怎么解除
office365ios版本

奇迹mu最后一下判定?奇迹MU无赖状态怎么解除

📅 07-25 👁️ 8537
lol奖励计划活动时间介绍
office365ios版本

lol奖励计划活动时间介绍

📅 08-06 👁️ 3328
如何用键盘快捷键轻松关闭窗口—电脑操作小技巧分享,电脑小技巧,一招轻松关闭窗口,告别繁琐操作!
碧蓝航线犬绝版了吗
在线365bet盘口

碧蓝航线犬绝版了吗

📅 06-28 👁️ 2660
测试了20款应用后,我们被“极速版”恶心坏了
在线365bet盘口

测试了20款应用后,我们被“极速版”恶心坏了

📅 07-23 👁️ 2873
资费专区
beat365体育亚洲网页版

资费专区

📅 07-12 👁️ 4667
[世界杯]邵圣懿:决赛全要素集齐 冠军难以一蹴而就
beat365体育亚洲网页版

[世界杯]邵圣懿:决赛全要素集齐 冠军难以一蹴而就

📅 07-18 👁️ 7775
地下城蹲下是哪个键_dnf蹲下是哪个键
office365ios版本

地下城蹲下是哪个键_dnf蹲下是哪个键

📅 08-01 👁️ 5283