下午六点,在打LOL 。
看到群里发今晚七点牛客有比赛。
心想今天啥事没干,那就做做吧。
看 A 题。
A 233的字符串
动手写写,很容易发现答案就是
于是直接乘法逆元+输出答案即可。
然后看后面的题。
B 感觉很复杂,不会。
C 和 D 感觉有点可做。
然后就先看了 C 。
C 233的数列
感觉是个矩阵加速递推。
于是就开始推递推式。
人都推懵了。
花了可能有一个多小时吧,中间还做了一些杂事,最后成功搞出来一个 11*11 的矩阵,笑嘻了。
然后一个一个填数又花了半天。
然后输出结果又不对,又查了半天,发现是一个数填错了。
然后过了。
时间复杂度 $O(\log n)$ 。
推完 C 整个人脑子都是晕的。
看 D 想了半天,没啥思路。
一直摆到十点,结束了。
看题解。
看到 C 的题解,哈哈哈哈哈哈。
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈。
笑了半天
剩下的题,能补的明天再补吧。
上床看番去了。
第二天。
B 233的树
首先有一个结论:一个树的最长直径 $=$ 度数大于 $1$ 的节点个数 $+ 2\ (n>1) $ 。
那么便可以枚举度数大于 $1$ 的节点的度数,这其实就是一个插板问题。
一个 $n$ 个节点的树,度数之和为 $2n-2$ 。
每个节点度数都大于等于 $1$ ,那么假设有 $k$ 个节点的度数大于 $1$ ,还可以分给它们的度数为 $n-2$ ,这是一个插板问题,方案数为。
于是答案即为
于是 $O(n\log \mathrm{mod})$ 预处理出阶乘以及其逆元,然后再 $O(n)$ 统计答案即可。
注意特判当 $n=1$ 时答案为 $1$ ,当 $n=2$ 时答案为 $2$ 。
D 233求min
按照题解的思路写了写,一直都有 10% 的数据通过不了,调了几个小时,还是不行。
有人的代码有问题,能过这题。
不调了,数据有问题!(bushi
贴一个题解的思路吧。
剩下的题都是没学过的算法,不看了。