什么网站立刻买东西简单网页制作模板
文章目录
- 好汤圆
- 灯笼猜谜
- 元宵分配
- 摆放汤圆
好汤圆
好汤圆
思路分析:
由于2025能够被15整除,所以我们直接输出对应的答案即可
import os
import sys# 请在此输入您的代码print(2025//15)
灯笼猜谜
灯笼猜谜
思路分析:
首先呢,我就考虑是否可以用贪心策略
或者动态规划
进行求解,但是你要是使用动态规划
进行求解的话,一般就是定义dp[i][j]
为前i个谜语在前j个灯笼处的最小疲惫值
,但是仔细一想,这个动态规划十分不合理,并且复杂度也会超时,最后考虑使用贪心策略
,时间复杂度也在o(n)
import os
import sys# 输入验证和最小疲劳值计算
def solve_lantern_game(N, M, intervals): total_fatigue = 0current_pos = 1 # 初始位置为 1# 按顺序处理每个谜语for L, R in intervals:# 选择区间 [L, R] 中的最优位置 x, minimizes |current_pos - x|if current_pos < L:# 如果当前位置在区间左边,最优选择是 Loptimal_pos = Lelif current_pos > R:# 如果当前位置在区间右边,最优选择是 Roptimal_pos = Relse:# 如果当前位置在区间内,最优选择是保持当前位置(疲劳值最小)optimal_pos = current_pos# 计算移动的疲劳值(使用绝对值)fatigue = abs(current_pos - optimal_pos)total_fatigue += fatigue# 更新当前位置current_pos = optimal_posreturn total_fatigue# 主程序
if __name__ == "__main__":# 读取输入N, M = map(int, input().split())intervals = []for _ in range(N):L, R = map(int, input().split())intervals.append((L, R))# 计算并输出结果result = solve_lantern_game(N, M, intervals)print(result)
元宵分配
元宵分配
思路分析:
经过模拟分析,你会发现,最终怎么分配都不会改变得到的总数
import os
import sys# 请在此输入您的代码
# 个人觉得,如果分奇数和偶数
# 所谓的调整,其实就是第i次如果不调整,那么Ai,就无法再调整# 感觉没得调整
# N,K = map(int,input().split())
nums = list(map(int,input().split()))nums.sort()
print(sum(nums[:N//2]))
摆放汤圆
摆放汤圆
思路分析:
对于范围较大,并且查询次数较多的情况,我们一般考虑使用动态规划进行求解
- 使用动态规划进行缩小问题,当目前是到
第n个汤圆的时候
,如果放在对角线,那么问题转化为n-1个汤圆的问题
,如果不放对角线,那还需要一个汤圆,一起可以放在第n行第k个的位置
,总共就有n-1
个位置,所以总的来说,递推式子dp[i] = dp[i-1] + (n-1)*dp[i-2]
MOD = 10**9 + 7#
dp = [0]*(10**6+1)
dp[1] = 1
dp[2] = 2
for i in range(3,10**6+1):dp[i] = (dp[i-1] + (i -1)*dp[i -2])%MODt = int(input())
for _ in range(t):n = int(input())print(dp[n])