HJ103 Redraiment的走法(梅花桩递增可走的最多步数)_排序_动态规划
思路:
该题目符合,最优结果拥有最优子结果的特征。考虑用动态规划。通过循环获取每个参数作为最后一个桩的最优子结果,后面桩的结果为前一个桩的最优子结果+1。如梅花桩“2 5 1 5 4 5”。参考高赞答案,代码如下
1 import sys 2 a=int(sys.stdin.readline().strip()) 3 b=list(map(int,sys.stdin.readline().strip().split())) 4 bp=[1 for i in range(a)]#每个梅花桩最少梅花桩步数为1,自己本身 5 #print(bp) 6 for i in range(a-1):#循环以i为第一步 7 for j in range(i+1,a):#循环得到j的梅花桩步数 8 if b[j]>b[i]: 9 bp[j]=max(bp[j],bp[i]+1)#b[j]>b[i]则b[j]一定比b[i]大一步。 10 print(max(bp))
标签:
python 刷题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix