传送门

解题思路

  这道题就是求带标号的无向连通图个数,首先考虑\(O(n^2)\)的做法,设\(f_i\)表示有\(i\)个节点的无向连通图个数,那么考虑容斥,先把所有的无向图求出,即为\(2^{C(n,2)}\),再减去不联通的情况,而计算不联通情况时可以枚举\(1\)号点这个联通块的大小,就有方程
  \[f_i=2^{C_i^2}-\sum\limits_{j=1}^{i-1}C_{i-1}^{j-1}2^{C^2_{i-j}}f_j\]
  发现这样的时间复杂度为\(O(n^2)\)的,无法通过本题。考虑优化,我们设法把左右两边的\(f\)合并,可以给式子同时除一个\((i-1)!\),可得
\[\frac{f_i}{(i-1)!}=\frac{2^{C_i^2}}{(i-1)!}-\sum\limits_{j=1}^{i-1}\frac{2^{C^2_{i-j}}f_j}{(j-1)!(i-j)!}\]
  发现右边假设\(j\)枚举到\(i\)正好是左边,那么就移项。
\[\sum\limits_{j=1}^i\frac{C^{2}_{i-j}f_j}{(j-1)!(i-j)!}=\frac{2^{C_i^2}}{(i-1)!}\]
  右边是卷积的形式
\[\sum\limits_{j=1}^i\frac{f_j}{(j-1)!}*\frac{2^{C^2_{i-j}}}{(i-j)!}=\frac{2^{C^2_i}}{(i-1)!}\]
  设\(A=\sum\limits_{i=1}^n\dfrac{f_i}{(i-1)!}x^i\),\(B=\sum\limits_{i=0}^{n-1}\dfrac{2^{C_i^2}}{i!}x^i\),\(C=\sum\limits_{i=1}^n\dfrac{2^{C_i^2}}{(i-1)!}x^i\),则
\[A*B=C\]
\[A=C*B^{-1}\]
  多项式求逆即可,时间复杂度\(O(nlogn)\)

BZOJ 3456: 城市规划(dp+多项式求逆)的更多相关文章

  1. BZOJ 3456: 城市规划 与 多项式求逆算法介绍(多项式求逆, dp)

    题面 求有 \(n\) 个点的无向有标号连通图个数 . \((1 \le n \le 1.3 * 10^5)\) 题解 首先考虑 dp ... 直接算可行的方案数 , 容易算重复 . 我们用总方案数减 ...

  2. BZOJ 3456 城市规划 ( NTT + 多项式求逆 )

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=3456 题意: 求出\(n\)个点的简单(无重边无自环)无向连通图的个数.(\(n< ...

  3. 【BZOJ】3456: 城市规划 动态规划+多项式求逆

    [题意]求n个点的带标号无向连通图个数 mod 1004535809.n<=130000. [算法]动态规划+多项式求逆 [题解]设$g_n$表示n个点的无向图个数,那么显然 $$g_n=2^{ ...

  4. 【bzoj3456】城市规划 dp+多项式求逆

    Description 刚刚解决完电力网络的问题, 阿狸又被领导的任务给难住了. 刚才说过, 阿狸的国家有n个城市, 现在国家需要在某些城市对之间建立一些贸易路线, 使得整个国家的任意两个城市都直接或 ...

  5. 【bzoj3456】城市规划(多项式求逆+dp)

    Description 求\(~n~\)个点组成的有标号无向连通图的个数.\(~1 \leq n \leq 13 \times 10 ^ 4~\). Solution 这道题的弱化版是poj1737, ...

  6. 【BZOJ】3456: 城市规划(多项式求ln)

    题解 在我写过分治NTT,多项式求逆之后 我又一次写了多项式求ln 我们定义一个数列的指数型生成函数为 \(\sum_{i = 0}^{n} \frac{A_{i}}{i!} x^{i}\) 然后这个 ...

  7. CF848E Days of Floral Colours——DP+多项式求逆/分治NTT

    官方题解:http://codeforces.com/blog/entry/54233 就是由简入繁 1.序列处理,只考虑一个半圆 2.环形处理(其实这个就是多了旋转同构) 然后基于分割线邻居的跨越与 ...

  8. 洛谷P4841 城市规划(生成函数 多项式求逆)

    题意 链接 Sol Orz yyb 一开始想的是直接设\(f_i\)表示\(i\)个点的无向联通图个数,枚举最后一个联通块转移,发现有一种情况转移不到... 正解是先设\(g(n)\)表示\(n\)个 ...

  9. BZOJ3456 城市规划 【多项式求逆】

    题目链接 BZOJ3456 题解 之前我们用分治\(ntt\)在\(O(nlog^2n)\)的复杂度下做了这题,今天我们使用多项式求逆 设\(f_n\)表示\(n\)个点带标号无向连通图数 设\(g_ ...

随机推荐

  1. RESTful再理解

    目录 目录 前言 RESTful的目的 REST的含义 表现层 状态转化 无状态协议HTTP 最后 前言 这是在经过一段时间的积累后,对RESTFul框架的再一次更深入的理解.希望能够将零散的知识点连 ...

  2. Vue.js的列表数据的同步更新方法

    这次给大家带来Vue.js的列表数据的同步更新方法,Vue.js列表数据同步更新方法的注意事项有哪些,下面就是实战案例,一起来看一下. 数组的 push(),pop(),shift(),unshift ...

  3. Vue过渡:JavaScript钩子

    一 App.vue <template> <div id="app"> <button @click="show = !show" ...

  4. Rust SDL2配置

    github地址 https://github.com/Rust-SDL2/rust-sdl2 clone或下载这个项目 本文使用的是MSVC版本 上面链接页面搜Windows (MSVC) 得知需要 ...

  5. sed查找实例:mysql_process.sh

    标准 #!/bin/bash # FILE_NAME=/home/roo/Desktop/shell_code/day6/my.cnf # 获取所有的片段 function get_all_segme ...

  6. Netty之Page级别的内存分配

    Page 级别的内存分配: 之前我们介绍过, netty 内存分配的单位是chunk, 一个chunk 的大小是16MB, 实际上每个chunk, 都以双向链表的形式保存在一个chunkList 中, ...

  7. XML学习——java解析xml文件

    递归获取每个标签 package test; import java.io.File; import java.util.List; import org.dom4j.Document; import ...

  8. [暑假集训Day2T3]团建活动

    个人认为这周题中较难的一道. 题意大概为:给定一张N个点M条边的无向图,求出无向图的一棵最小生成树,满足一号节点的度数不超过给定的整数K.保证 N <= 20 首先用map存取节点,之后抛去1号 ...

  9. LayaBox 常用技巧

    1.修改IDE的菜单 找到安装路径的LayaAirIDE\resources\app\out\vs\layaEditor\renders\laya.editorUI.xml 注意事项: 1.mask的 ...

  10. 转载一篇别人分享的VSFTPD.CONF的中文解释方便以后查询

    # 服务器以standalong模式运行,这样可以进行下面的控制 listen=YES # 接受匿名用户 anonymous_enable=YES # 匿名用户login时不询问口令 no_anon_ ...