【题解】2021牛客OI赛前集训营-提高组(第二场)
为出题人点赞
T1.
找规律(良心出题人啊)。
假设 a [ i ] ≠ b [ i ] a[i]\neq b[i] a[i]=b[i] 一共有 t m p tmp tmp 对,一定是 0 / 1 0/1 0/1 组合,那么剩下 0 / 1 0/1 0/1 的数量就是 c n t 0 / c n t 1 − t m p cnt_0/cnt_1-tmp cnt0/cnt1−tmp 。又因为 c n t 0 / c n t 1 − t m p cnt_0/cnt_1-tmp cnt0/cnt1−tmp 一定是偶数,所以统计 0 / 1 0/1 0/1 出现次数的奇偶性就能求出 t m p tmp tmp 。
时间复杂度 O ( n + q ) O(n+q) O(n+q) 。
T2.
组合数 / dp 计数。
我们考虑枚举线段的左右端点,并规定端点必选,这条线段的整点有 N = gcd ( i , j ) N=\gcd(i,j) N=gcd(i,j) 个。同时求出 k = ⌈ d / ( i / N ) 2 + ( j / N ) 2 ⌉ k=\lceil d/\sqrt{(i/N)^2+(j/N)^2}\rceil k=⌈d/(i/N)2+(j/N)2⌉ 。
那么方案数为 2 ∗ ( N − 1 N − 1 − ( n − 1 ) ∗ ( k − 1 ) ) 2*\binom{N-1}{N-1-(n-1)*(k-1)} 2∗(N−1−(n−1)∗(k−1)N−1) 。 对横竖的情况特判即可。
T3.
大水题。
可以发现,一个节点 u u u 可以将子树中的两个序列给拼成一个序列,贪心策略为在 u u u 的子树内拼接成尽可能大的序列,再往父节点转移即可。
写一个启发式合并不就完了嘛。(暴力神器)
时间复杂度 O ( n l o g 2 n ) O(nlog^2n) O(nlog2n) 。
__EOF__

本文链接:https://www.cnblogs.com/cqbzly/p/17530224.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」