碎碎念:好难好难,,发呆两小时什么也写不出来,,,周六大寄了
10.阶乘约数 - 蓝桥云课 (lanqiao.cn)
暴力跑了两个小时没出来结果,,去看题解要用数学:约数定理,,闻所未闻
11.子树的大小 - 蓝桥云课 (lanqiao.cn)
这个题,想着写三段循环看能不能,写了三行就卡壳,,,可恶啊,,
题解完全是按树的构建去的,我看不懂,,,,问chatgpt他写的也不行
姑且贴一下题解,,,其他的不管了,,,晚上回去看看别人写的模板吧,,水一天
import os import sys t = int(input()) for _ in range(t): # 第k个结点的子节点范围为[k*m-m+2,k*m+1] n,m,k = map(int,input().split()) l=k # 表示子节点的左端点 r=k # 表示子节点的右端点 ans = 1 # 记录总的结点的数量 res = 1 # 记录每一层子结点的数量 while r*m+1 <=n: # 如果子节点最右端小于n 说明没到尽头 res *= m # 计算出这一层的所有子节点数目 l = l*m-m+2 # 更新左端点 r = r*m+1 # 更新右端点 ans +=res # 更新总端点数目 l=l*m-m+2 # 最后一层最左端点 ans+=max(0,n-l+1) # 最后一层最右端点就是n,直接用n-l+1计算出这层的结点数量 print(ans)