牛客挑战赛65


下午六点,在打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

贴一个题解的思路吧。


剩下的题都是没学过的算法,不看了。


文章作者: HoshiuZ
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 HoshiuZ !
  目录