zoukankan      html  css  js  c++  java
  • 画家小P

    题意

    n个点m条边,要给每个点染色一种颜色,(col_i),则图的美丽值为(igopluslimits_{i=1}^n col_i),其中给定了(limit_i),需要满足(col_iin[0,limits_i])。若满足美丽值为(C),对于任意边((u,v)),需要满足(col_u=col_v)。求有多少种不同的方案数。((nle 15,mle {nchoose 2})(C,limit_ile 10^{18})

    做法

    考虑对边容斥,即强制边的端点相同
    显然容斥系数为((-1)^{|所选边集|})
    而边集的状态其实为:族(P={S_1,S_2,cdots ,s_k}),其表示图的联通状态
    进一步的,令(coef(S)=sumlimits_{E'subseteq E}[E'在S的导出子图内,且E'使得S联通](-1)^{|E'|})(P)的总容斥系数法就为(prodlimits_{i=1}^k coef(S_i))

    而对于族(P),方案数为如下(令(u_i)(S_i)(limit)最小的点)

    (m)(limit_{u_i})的限制,其中(k)(S_i~is~odd),使得(igopluslimits_{i=1}^k col_i=C(col_iin[0,limits_i]))
    这个见过无数次了...(O(nlogC))

    (P)的数量是(O(bell(n)))级别的,但冷静一下会发现,其实只与(limit_{u_i})有关,是(O(2^n))级别的
    (f_{S,T})为已经选过(S)了,其中奇数的集合代表元素(即最小元素)为(T),预处理(f_{[n],T})的数量,然后算方案数

    (O(4^n+2^nnlogC))

    题外话

    论文(4.3,5.2)以后再补

  • 相关阅读:
    n的阶乘
    二叉树遍历
    二分查找练习
    字符串中最长回文序列求解
    复数集合
    AppCrawler自动化遍历使用详解(版本2.1.0 )(转)
    谷歌驱动下载链接
    谷歌浏览器插件
    Pycharm破解方法
    go学习链接
  • 原文地址:https://www.cnblogs.com/Grice/p/12939467.html
Copyright © 2011-2022 走看看