• Bubble Cup 11


    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的那种东西,就会又掉血,又掉蓝,这就非常不理智了。
  • 相关阅读:
    uC/OS II原理分析及源码阅读(一)
    并查集回顾
    js中ascii码的转换
    NS2中trace文件分析
    NS2中修改载波侦听范围和传输范围
    ubuntu wubi非在线快速安装
    用康托展开实现全排列(STL、itertools)
    日期的各种计算
    求约数的个数(约数个数定理)
    Parallel.js初探续集
  • 原文地址:https://www.cnblogs.com/RUSH-D-CAT/p/9752182.html
Copyright © 2020-2023  润新知