第49期比赛页面:第49期编程竞赛
一、
小海豚喜欢打游戏,现在它在操纵游戏人物小C逃脱废弃的隧道,逃生装置在小C的前方 X 米远的位置。但是游戏机只有 两个按钮:前进和后退,按前进,小C会前进 m 米,按后退,小C会后退 n 米。 小海豚必须设法把小C送到逃生装置上, 方能逃离隧道,请你帮帮小海豚,告诉它至少要操作多少次,才能通关。
数据范围不大,直接暴力。
X, m, n = map(int, input().strip().split())
a = 0
while True:b = 0d = m * awhile True:t = d - X - n * bif t > 0:b += 1else:breakif t == 0: breaka += 1
print(a + b)
二、输出给定字符串str中最长回文串的长度。
马拉车算法模板。
三、以字符串的形式给你一个长度为 M 的整数 N,请你计算出对这个数进行一次操作后模 9 的值为 1 的所有可能的不同操作 方式。 在一次操作中, 我们可以选择 N 的一个数位 N[i],并把它替换成另一个不同的 0 到 9 范围之内的数 B,两种操作 方式不同当且仅当它们选择的 i 或 B 不同。
线性 DP 求解。定义 d p [ i ] [ k ] ( i ∈ [ 0 , n ] , k ∈ [ 0 , 9 ] ) dp[i][k] (i\in [0, n], k \in [0, 9]) dp[i][k](i∈[0,n],k∈[0,9]) 表示前缀中使得余数为 k 的操作方案数量。
四、小明电脑空间满了,决定清理一下磁盘空间。为了简化问题,小明列了他个人文件夹(/data)中所有末级文件路径和大小,挑选出总大小为m的删除方案。求所有删除方案中,删除操作次数最小是多少。一次删除操作:删除文件或者删除文件夹。如果删除文件夹,那么该文件夹包含的文件都将被删除。文件夹的大小:文件夹中所有末级文件大小之和。
典型的属性背包题目。
10. 有依赖的背包问题