题目分析

来自2013年王迪的论文《浅谈容斥原理》

设\(f_{n,S}\)表示n个节点,入度为0的点集恰好为S的方案数。

设\(g_{n,S}\)表示n个节点,入度为0的点集至少为S的方案数。

对于\(g_{n,S}\),有递推式
\[
g_{n,S}=2^{|S|(n-|S|)}g_{n-|S|,\emptyset}
\]

f与g有如下关系
\[
g_{n,S}=\sum_{S\subseteq T}f_{n,T}
\]

子集反演一下
\[
f_{n,S}=\sum_{S\subseteq T}(-1)^{|T|-|S|}g_{n,T}
\]

我们要求的答案即为
\[
\begin{split}
g_{n,\emptyset}&=\sum_{|S|=1}^nf_{n,S}\\
&=\sum_{|S|=1}^n\sum_{S\subseteq T}(-1)^{|T|-|S|}g_{n,T}\\
&=\sum_{|S|=1}^n\sum_{S\subseteq T}(-1)^{|T|-|S|}2^{|T|(n-|T|)}g_{n-|T|,\emptyset}\\
&=\sum_{i=1}^n\binom{n}{i}\sum_{j=i}^n\binom{n-i}{j-i}(-1)^{j-i}2^{j(n-j)}g_{n-j,\emptyset}\\
&=\sum_{j=1}^n2^{j(n-j)}g_{n-j,\emptyset}\sum_{i=1}^j\binom{n}{i}\binom{n-j}{j-i}(-1)^{j-i}\\
&=\sum_{j=1}^n(-1)^j\binom{n}{j}2^{j(n-j)}g_{n-j,\emptyset}\sum_{i=1}^j\binom{j}{i}(-1)^i\\
&=\sum_{j=1}^n(-1)^j\binom{n}{j}2^{j(n-j)}g_{n-j,\emptyset}(\left[j=0\right]-1)\\
&=\sum_{j=1}^n(-1)^{j+1}\binom{n}{j}2^{j(n-j)}g_{n-j,\emptyset}\\
&=n!\sum_{j=1}^n2^{j(n-j)}\frac{(-1)^{j+1}}{j!}\frac{g_{n-j,\emptyset}}{(n-j)!}
\end{split}
\]

很像一个卷积的形式了,但是怎么搞\(2^{j(n-j)}\)呢?

一个套路
\[
\begin{split}
2^{k(n-k)}&=\sqrt{2}^{2kn-2k^2}\\
&=\sqrt{2}^{-n^2+2kn-k^2-k^2+n^2}\\
&=\sqrt{2}^{n^2-k^2-(n-k)^2}\\
&=\frac{\sqrt{2}^{n^2}}{\sqrt{2}^{k^2}\sqrt{2}^{(n-k)^2}}
\end{split}
\]

这样就构造出了卷积形式。

所以
\[
\begin{split}
\frac{g_{n,\emptyset}}{n!\sqrt{2}^{n^2}}&=\sum_{j=1}^n\frac{(-1)^{j+1}}{j!\sqrt{2}^{j^2}}\frac{g_{n-j,\emptyset}}{(n-j)!\sqrt{2}^{(n-j)^2}}
\end{split}
\]

构造生成函数
\[
F(x)=\sum_{i=1}\frac{g_{i,\emptyset}}{i!\sqrt{2}^{i^2}}x^i\\
G(x)=\sum_{i=1}\frac{(-1)^{i+1}}{i!\sqrt{2}^{i^2}}
\]


\[
\begin{split}
F&=F*G+1\\
&={1\over1-G}
\end{split}
\]

多项式求逆即可。

cogs 2355. [HZOI 2015] 有标号的DAG计数 II的更多相关文章

  1. COGS 2396 2397 [HZOI 2015]有标号的强连通图计数

    题意:求n个点有向图其中SCC是一个的方案数 考虑求出若干个不连通的每个连通块都是SCC方案数然后再怎么做一做.(但是这里不能用Ln,因为推不出来) 设$f_n$为答案, $g_n$为n个点的有向图, ...

  2. COGS 2353 2355 2356 2358 有标号的DAG计数

    不用连通 枚举入度为0的一层 卷积 发现有式子: 由$n^2-i^2-(n-i)^2=2*i*(n-i)$ 可得$2^{i*(n-i)}=\frac{{\sqrt 2}^{(n^2)}}{{\sqrt ...

  3. COGS2355 【HZOI2015】 有标号的DAG计数 II

    题面 题目描述 给定一正整数n,对n个点有标号的有向无环图(可以不连通)进行计数,输出答案mod 998244353的结果 输入格式 一个正整数n 输出格式 一个数,表示答案 样例输入 3 样例输出 ...

  4. cogs [HZOI 2015]有标号的二分图计数

    题目分析 n个点的二分染色图计数 很显然的一个式子 \[ \sum_{i=0}^n\binom{n}{i}2^{i(n-i)} \] 很容易把\(2^{i(n-i)}\)拆成卷积形式,前面讲过,不再赘 ...

  5. 有标号的DAG计数 II

    Description 给定一正整数n,对n个点有标号的有向无环图(可以不连通)进行计数,输出答案mod 998244353的结果 Solution 考虑 \(O(n^2)\) DP 枚举出度为 \( ...

  6. 【题解】有标号的DAG计数2

    [HZOI 2015] 有标号的DAG计数 II \(I\)中DP只有一个数组, \[ dp_i=\sum{i\choose j}2^{j(i-j)}dp_{i-j}(-1)^{j+1} \] 不会. ...

  7. 【题解】有标号的DAG计数4

    [HZOI 2015] 有标号的DAG计数 IV 我们已经知道了\(f_i\)表示不一定需要联通的\(i\)节点的dag方案,考虑合并 参考[题解]P4841 城市规划(指数型母函数+多项式Ln),然 ...

  8. 【题解】有标号的DAG计数3

    [HZOI 2015] 有标号的DAG计数 III 我们已经知道了\(f_i\)表示不一定需要联通的\(i\)节点的dag方案,考虑合并 参考[题解]P4841 城市规划(指数型母函数+多项式Ln), ...

  9. 【题解】有标号的DAG计数1

    [HZOI 2015] 有标号的DAG计数 I 设\(f_i\)为\(i\)个点时的DAG图,(不必联通) 考虑如何转移,由于一个DAG必然有至少一个出度为\(0\)的点,所以我们钦定多少个出度为\( ...

随机推荐

  1. 跟着Nisy一起学习C语言

    编辑器是使用环境turboc的IDE,使用dos窗口中的edit作为编辑器,有点类似于vim:使用的是xp-sp3的虚拟机上的系统. Nisy说要有两种语言,脚本语言以及一个底层语言,比如现在我的py ...

  2. excel 工作表如何插入当前日期时间

    在EXCEL表格中,插入当前的日期或是插入当前的时间:我们都可以用快捷键或时间函数来实现 插入当前日期 快捷键方法: 比如,显示日期的单元格为A1单元格: 今天是2018年6月8日: 鼠标点一下A1单 ...

  3. FE面试题库

    一.HTML 序号 面试题目 难度等级 回答要点 H1 简述编写HTML需要注意哪些事项? ☆ DOCTYPE.charset.viewport.语义化.CSS与JS的位置.DOM层级.结构样式行为的 ...

  4. Hadoop源码学习笔记(6)——从ls命令一路解剖

    Hadoop源码学习笔记(6) ——从ls命令一路解剖 Hadoop几个模块的程序我们大致有了点了解,现在我们得细看一下这个程序是如何处理命令的. 我们就从原头开始,然后一步步追查. 我们先选中ls命 ...

  5. C/C++:Windows cmd 指令

    一.快捷键1. Windows键 自从104键盘首次加入Windows键后,微软便一直计划为这个键添加更多功能,当然Win8也不例外. * Win+C:调出应用Charm菜单(Metro.传统桌面) ...

  6. java设计模式-----9、观察者模式

    Observer模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态. Observer模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对 ...

  7. 工厂模式的认识(GOF23)

    ---恢复内容开始--- 对于所有的设计模式来说,其本质是哪里变化封装哪里.寻找变化点,没有万能的模式,只有适合情况的应用 工厂模式从简单工厂开始演化 1.简单工厂的主要作用在于从源头开始封装实例化, ...

  8. 删除N天前的备份文件脚本(windows)

    D:\bat\forfiles.exe /p "D:\dmpbk" /s /m *.dmp /d -2 /c "cmd /c del @path" 解析: 使用 ...

  9. js比较好的一些方法

    js里面有些方法比较容易忘记,但却很实用,很好用的一些方法.在此记录: 1.Math.ceil(x) — 返回大于等于数字参数的最小整数(取整函数),对数字进行上舍入 2.Math.floor(x)– ...

  10. [POI2005]AUT-The Bus

    树状数组维护前缀最大值+扫描线DP #include"cstdio" #include"cstring" #include"iostream" ...