Bubble Cup 11 - Finals [Online Mirror, Div. 1]题解 【待补】
Bubble Cup 11 - Finals [Online Mirror, Div. 1]
一场很好玩的题啊!
I. Palindrome Pairs
- 枚举哪种字符出现奇数次。
G. AI robots
- 对\(r\)从大到小排序,然后cdq分治。
- 注意要对\(q-k,q+k,q\)进行离散化
B. Space Isaac
- 对原序列做差分,
b[i]=a[i]-a[i-1]
- 如果我们要凑出\(x\),那么集合A中小于\(x\)的数字,要关于\(x/2\)对称,大于\(x\)的数字要关于\((x+m)/2\)对称。
- 枚举分界点x的位置,\(x\)左边,\(x\)右边的差分序列,都应该式回文的,才能合法。
- 怎么判断回文串呢?hash一下就好了。
C.Hyperspace Highways
- 先求出所有的点双联通分量。加上那些边后,每个点双都会变成一个完全图。
- 我们给每个点双建立一个虚拟节点,从这个虚拟节点像点双中每一个点连长度为
1/2
的边。然后把其它边删掉。 - 剩下的图一定是一棵树,如果有环的话,那么又出现了新的点双。
- 树上路径长度查询,拿LCA做就好了。
一开始想的假算法:留下所有割点,建树。,然后建的树里竟然有环!于是就GG了。
从连通分量的角度,去重建一个图,也是比较常见的操作了。
- SCC缩点后,有向图会变成一个DAG。要连招的话,可以追加一个DAG上的DP什么的。
- BCC边双缩点后,把所有桥保留。每只边双连通分量变成一个点。那么我们会得到一棵树。树能干的事就多着了!好多好多操作都可以施展了。
- BCC点双!不能随便缩点啊!会得到很辣鸡的东西。
D.Interstellar battle
- 一开始想树形DP搞,然后很GG。
- 连通块个数 = \(V - E\),也就是点数-边数。
- 我们分别求出V的期望,和E的期望就好了。V的期望很好求。
- E的期望 = \(\sum_{edge} p(edge苟住了)\),期望可加性,把条边对答案的贡献加起来即可。
像这种期望问题,一般是两种策略了。
- 策略1:最终的答案可能要我们算一个宏伟的东西,根据期望的可加性什么的,把最终答案分成很多个小事件。然后加起来。这个问题就是这样的!
- 策略2:拿头去DP。如果事件之间不具备独立性,然后我们又要算\(E(AB)\)这种东西。那就考虑下DP吧!如果拿DP搞那种策略1的那种东西,就会又掉血,又掉蓝,这就非常不理智了。