百度之星初赛(全)

初赛一

打疫苗去了,最后\(30min\)看了看题,打了一题还有一题没调出来。

自己的思路太慢以及打代码速度太慢,别人可以\(40min\)\(5\)题啊。。。

初赛相对来说不算太难的。

\(T4,T8\)是简单的模拟题。

\(T6\)需要超级快读。感觉自己也需要背背这个板子。

\(T3\)是简单的\(DP\)

初赛二

这次是准时(迟了\(10min\))开始打的。

\(T1\)开始打的,是道简单小学数学题。

\(T2\)简单模拟,\(T7\)简单拓扑序,\(T4\)是简单数学题。

\(T3\)是超简单弱化版的欧拉回路(甚至不需要找回路)。

\(T5\)的题意和样例没看懂:

给一个排列,排列可能由两种方式生成:

  1. 初始为\(1,2,...,n\),每次等概率随机交换两位,交换\(3n\)次。
  2. 初始为\(1,2,...,n\),每次等概率随机交换两位,交换\(7n\)次。

求这个排列是由哪种方式生成。\(50000\le n\le 100000\)

结果这题题解也来了个捉摸不透的解释:

交换 \(3n\) 次之后排列的环的个数或不动点个数会远大于交换 \(7n\) 次之后排列环的个数或不动点个数,直接判断大小即可。

看了看别人的代码,就是判断不动点个数是否大于\(10/50/20/2/...\),感觉很神奇。。。


\(T6\)感觉并不难,考场有两种想法。

  1. 以每个叶子(且是直径一段)为根做一波,乘积之和。

  2. 想的是找重心然后看每个深度的个数,\(C(2,t[dep])\)的乘积,但是错了

看来是我考虑不够周全。。。

正解和我的第一个想法其实很相似了,但是有些情况会算重:

就是刚好\(S\)中的点是一条直径的情况,这样直径两端都可以算到这种情况,需要特别减去这种情况即可。

而减去这个极其容易,只需要在\(dfs\)的时候顺便记录一下\(mxdep\)的个数,最后的\(ans\)减去\(sum/2\)即可。

初赛三

咕咕咕了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值