zoukankan      html  css  js  c++  java
  • 「LOJ#3399」Communication Network

    [egin {align*} & sum_{T2}|T1cap T2|cdot 2^{|T1cap T2|} \ = & sum_{T2} sum_{Ssubseteq T1cap T2} sum_{Tsubseteq S} left(-1 ight)^{|S| - |T|} |T|cdot 2^{|T|} \ = & sum_{Ssubseteq T1} f_S left(-1 ight)^{|S|} sum_{Tsubseteq S} left(-1 ight)^{|T|} |T|cdot 2^{|T|} \ = & sum_{Ssubseteq T1} f_S left(-1 ight)^{|S|} sum_{k = 0}^{|S|} inom {|S|} {k} kleft(-2 ight)^{k} \ = & sum_{Ssubseteq T1} left(-2|S| ight) cdot f_S left(-1 ight)^{|S|} sum_{k = 0}^{|S| - 1} inom {|S| - 1} {k - 1} left(-2 ight)^{k - 1} \ = & sum_{Ssubseteq T1} left(-2|S| ight) cdot f_S left(-1 ight)^{|S|} left(-1 ight)^{|S| - 1} \ = & 2sum_{Ssubseteq T1} |S| cdot f_S \ = & frac {2} {n^{2}} sum_{Ssubseteq T1} |S| prod ncdot a_i end {align*} ]

    其中 (f_S) 表式包含边集 (S) 的树的数目,(k) 表示 (S) 形成的连通块数目,({a_i}) 表示 (S) 形成的各个连通块大小。

    考虑组合意义。对于一个边集 (S),它对答案的贡献是:选出不在 (S) 中的一条边,在每个连通块中选一个点对答案造成乘 (n) 的贡献。并对所有 (S) 求和。

    考虑 dp。记 (dp_{u,0/1,0/1}) 表示考虑 (u) 这棵子树,(u) 所在的连通块中是否选点,(u) 子树中是否选边,所有已确定连通块的贡献的和。

    转移是显然的就是容易写错

    Code

  • 相关阅读:
    使用hugo在gitee上写blog
    golang初识2
    golang初识1
    install go on ubuntu
    sql优化的几种方式
    UpdatePanel 无刷新弹出窗口
    .net web 点击链接在页面指定位置显示DIV的问题
    重建主键
    sql 日期时间格式转换
    UpdatePanel无法直接弹出窗口的解决
  • 原文地址:https://www.cnblogs.com/realSpongeBob/p/LOJ3399.html
Copyright © 2011-2022 走看看