感觉是真的有点鬼畜啊这题目 来自我这个同学的小声bb
好了 我这个同学又来订正题目了
T1 惊现数学必修五 数列 裂项相消的 关于带根号的放缩 别问我怎么知道的
考试前数学老师发的学案上 印着我们oi考试的T1 很痛心 不上数学课的我
不过 即使没有那个学案也能搞出来这个题目 因为 只要读题了 我们就知道T1 是用来做求
$$sum_{i=1}^{n} leftlfloorfrac1 {2sqrt{i}} ight floor$$
然后会不等式放缩的同学就比较舒服了 鉴于 我比较懒 公式比较难打 所以 明白了之后 我们可以 根据放缩的系数 以及 根号下加的东西考虑 进行放缩 都是 控制精度的好东西
所以最后的答案一定是属于一个范围的$ANSin(sqrt{n+1}-1,sqrt{n})$ 然后这个题目就做完了 考虑这个题目是可以与精度误差 所以你怎么做都可以
也可以 打表发现规律 至少考场上我是这么做的 然后 我考虑接下里做一个数列求和 然后解决一个二次方程 然后 我观察 方程的解是有范围的
所以 你可以缩小范围 然后求解即可 不过你要是 牛顿迭代法 我也不会拦你qwq
T2 这个对递推比较熟练的话 其实就可以 很快搞出来这个题目的
首先 这个是个很经典的 汉诺塔问题 其实以前看书的时候就发现了 有n盘m塔的汉诺塔问题 但是当时也没有学习 考场上直接遇到了
前$mle5$ 完全可以 先打表搞出来 但是对于 1500 的情况 我们不得不考虑 一个比较好的递推式了
显然 当$m==3$ 时 $d_n$ 表示有n个盘子的最小步数 $d_n=2*d_{n-1}+1$
对于$m==4$时 $f_n=min_{i in [0,n)} (2*f_i+d_{n-i})$
所以$mge5$的时候 我们不妨考虑对于n盘m塔递推公式就是$f[n][m]=min_{k in [0,n)} (2*f[k][m]+f[n-k][m-1]) $
你以为你这样n2m就能过70分了吗 不 你要写高精度 推出来式子不写高精也就是20分嗷嗷
我们可以发现对于m固定的时候 k随n单调递增 当圆盘增多的时候 当前操作的圆盘数量也会增多
否则如果圆盘少的时候 操作的圆盘数量多 当前操作的圆盘数量 总会得到一个不会更差的解
所以可以考虑单调指针优化这个事情 复杂度是(nm)那么 预处理之后就变成了(1)
T3 好鬼畜啊 爆搜都不会写啊
现在还是不会 什么长链剖分啊qwq 又去问了问大佬 大致知道怎么做了
我们当前需要知道连通块有多少个 也需要知道满足条件的连通块的个数有多少个 考虑 一个树形dp
设$f_{i j}$表示以i为根的子树内 距离不超过j的儿子的数量 $g_{i j}$ 表示以i为根的子树内 满足距离为j的连通块的数量