def fun(n): list_1=[[1]*n for i in range(n)]#相当于创建二维数组 for i in range(n): for j in range(i+1): if(i==j or j==0): list_1[i][j]=1 else: list_1[i][j]=list_1[i-1][j]+list_1[i-1][j-1] a=max(list_1[-1]) s=0 while(a>0): s+=1 a//=10 for i in range(n): if(i节点选择 def dfs(node,pre): global value,table for i in table.get(node): if i !=pre: dfs(i,node) value[node][0]+=max(value[i][0],value[i][1]) value[node][1]+=value[i][0] def main(): global value, table n = int(input()) value = list(map(int, input().split())) value = list(map(lambda x:[0,x],value)) value.insert(0,0) table = {} for i in range(n): table.update({i + 1: []}) for i in range(n - 1): father, child = list(map(int, input().split())) table.get(father).append(child) table.get(child).append(father) print(table) dfs(1,0) print(max(value[1][0],value[1][1])) if __name__=='__main__': main()耐摔指数K好数x 星球有很多高耸入云的高塔,刚好可以用来做耐摔测试。
塔的各层高度都是一样的。他们的第 1 层不是地面,而是相当于我们的 2 楼。
他们的地面层为 0 层。如果手机从第 7 层扔下去没摔坏,但第 8 层摔坏了,则
手机耐摔指数 = 7。
特别地,如果手机从第 1 层扔下去就坏了,则耐摔指数 = 0。
如果到了塔的最高层第 n 层扔没摔坏,则耐摔指数 = n。
为了加快测试进度,从每个型号手机中,抽样 3 部参加测试。
问题来了:如果已知了测试塔的高度 n,并且采用最佳的策略,在最坏的运气下
需要测试多少次才能确定手机的耐摔指数呢?
动态规划——耐摔指数问题描述
如果一个自然数 N 的 K 进制表示中任意的相邻的两位都不是相邻的数字,那么
我们就说这个数是 K 好数。求 L 位 K 进制数中 K 好数的数目。例如 K = 4,L = 2
的时候,所有 K 好数为 11、13、20、22、30、31、33 共 7 个。由于这个数目很
大,请你输出它对 1000000007 取模后的值。
输入格式
输入包含两个正整数,K 和 L。
输出格式
输出一个整数,表示答案对 1000000007 取模后的值。
样例输入
4 2
样例输出
7
数据规模与约定
对于 30%的数据,KL <= 106;
对于 50%的数据,K <= 16, L <= 10;
对于 100%的数据,1 <= K,L <= 100def add_1(num,x,y=0): num[y]+=1 if(num[y]Leetcode上的练习题(六道) 509.斐波那契数
1137.第 N 个泰波那契数
70.爬楼梯
746.使⽤最⼩花费爬楼梯
121.买卖股票的最佳时机
1143.最⻓公共⼦序列欢迎分享,转载请注明来源:内存溢出
【思特奇杯•云上蓝桥--算法训练营】第3周作业 蓝桥杯真题(Python)
杨辉三角形
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
UPC2022新生赛30场
上一篇
2022-12-17
双指针 双指针 双指针
下一篇
2022-12-17
评论列表(0条)