cogs [HZOI 2015]有标号的二分图计数】的更多相关文章

题目分析 n个点的二分染色图计数 很显然的一个式子 \[ \sum_{i=0}^n\binom{n}{i}2^{i(n-i)} \] 很容易把\(2^{i(n-i)}\)拆成卷积形式,前面讲过,不再赘述. n个点的二分图计数 设\(f_n\)表示n个点的二分染色图个数. 设\(g_n\)表示n个点的二分连通图个数. 设\(h_n\)表示n个点的二分图个数. 分别构造f,g,h的EGF\(F,G,H\). 显然有 \[ \begin{aligned} F&=\sum_i(2*G)^i=e^{2G}…
题意:求n个点有向图其中SCC是一个的方案数 考虑求出若干个不连通的每个连通块都是SCC方案数然后再怎么做一做.(但是这里不能用Ln,因为推不出来) 设$f_n$为答案, $g_n$为n个点的有向图,分成若干个连通块,每个连通块都是一个SCC,且当连通块大小为奇数时候贡献1系数,偶数时候贡献-1系数.(这里把系数放进去可以避免再来一个函数的麻烦!) $h_n$表示n个点有向图个数$h_n=2^{n*(n-1)}$ $h_n=\sum_{i=1}^nC(n,i)\times g(i)\times…
题目分析 来自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…
其实这三道题都是不错的……(虽然感觉第三题略套路了……) 分别写一下做法好了…… COGS2392 有标号的二分图计数 I 这个就很简单了,Noip难度. 显然可以直接认为黑点和白点分别位于二分图两侧,枚举二分图左侧的点数,如果左侧的点数为$k$,那么就有$C_n^k$种选择方案,并且有$k(n-k)$条边可选,因为每条边都可以选或不选,因此答案就是 \begin{align}\sum_{k=0}^n C_n^k 2^{k(n-k)}\end{align} 由于只需求出一个答案,直接快速幂搞一搞…
有黑白关系: 枚举左部点(黑色点),然后$2^{i*(n-i)}$处理方法同:COGS 2353 2355 2356 2358 有标号的DAG计数 无关系: 发现,假设$f(i)$是一个连通块,对于一个连通块,变成无颜色的,除以二即可 由结论COGS 2353 2355 2356 2358 有标号的DAG计数:G,F为EGF,$G=ln F$ 所以方案就是:$e^{\frac{lnF}{2}}$ 至于连通的话,不用exp就可以了…
[HZOI 2015] 有标号的DAG计数 IV 我们已经知道了\(f_i\)表示不一定需要联通的\(i\)节点的dag方案,考虑合并 参考[题解]P4841 城市规划(指数型母函数+多项式Ln),然后答案\(h_i\)母函数\(H(x)\)就这样解 由于 \[ H(x)=\sum_{i=0}^{\inf} \dfrac {(F(x))^i} {i!} \] 则 \[ H(x)=e^{F(x)} \] 球\(\ln\)就好了 //@winlere #include<iostream> #inc…
[HZOI 2015] 有标号的DAG计数 III 我们已经知道了\(f_i\)表示不一定需要联通的\(i\)节点的dag方案,考虑合并 参考[题解]P4841 城市规划(指数型母函数+多项式Ln),然后答案\(h_i\)母函数\(H(x)\)就这样解 由于 \[ H(x)=\sum_{i=0}^{\inf} \dfrac {(F(x))^i} {i!} \] 则 \[ H(x)=e^{F(x)} \] 球\(\ln\)就是IV,不求的话可以直接手动模拟\(F(x)^i/i!\) //@winl…
[HZOI 2015] 有标号的DAG计数 II \(I\)中DP只有一个数组, \[ dp_i=\sum{i\choose j}2^{j(i-j)}dp_{i-j}(-1)^{j+1} \] 不会... 傻啊直接多项式球逆,借鉴一些luogu那道模板分治FFT 这里主要有个很烦人的\(ji-j^2\),现在要构造成\(j,i-j,i\)的的形式就好了,神tst告诉我们 \[ ij = \binom{i}{2} + \binom{j+1}{2} - \binom{i-j}{2}=\dfrac {…
[HZOI 2015] 有标号的DAG计数 I 设\(f_i\)为\(i\)个点时的DAG图,(不必联通) 考虑如何转移,由于一个DAG必然有至少一个出度为\(0\)的点,所以我们钦定多少个出度为\(0\)的点转移. 考虑如何保证没有环,钦定完出度为\(0\)的点后,这些点就等着被连接了.还剩下一些点,这些点只要不构成环就好了,就是个子结构,访问以前的DP数组就好了. \[ {i\choose j}2^{j\times (i-j)}dp_{i-j} \] 这样转移显然有方案重复的情况,因为如此计…
不用连通 枚举入度为0的一层 卷积 发现有式子: 由$n^2-i^2-(n-i)^2=2*i*(n-i)$ 可得$2^{i*(n-i)}=\frac{{\sqrt 2}^{(n^2)}}{{\sqrt 2}^{(i^2)}*{\sqrt 2}^{(n-i)^2}}$ 设$g(n)={\sqrt 2}^{(n^2)}$ 则,$2^{i*(n-i)}=\frac{g(n)}{g(i)*g(n-i)}$ 指数相乘变成指数相加减,把$g(n)$除过去即可 连通 弱联通:变成无向边是连通的 f(n)表示n…
[题意][COGS 2287][HZOI 2015]疯狂的机器人 [算法]FFT+卡特兰数+排列组合 [题解]先考虑一维的情况,支持+1和-1,前缀和不能为负数,就是卡特兰数的形式. 设C(n)表示第n/2个卡特兰数,当n为奇数时为0,即: $$C_n=\binom{n}{\frac{n}{2}}-\binom{n}{\frac{n}{2}-1},n\%2=0$$ 卡特兰数可以通过预处理阶乘和逆元后O(1)计算. 设f[n]表示走n步回到原点的操作序列数,那么答案要求所有f[i],通过枚举纵向行…
COGS 2580. [HZOI 2015]偏序 II 题目传送门 题目大意:给n个元素,每个元素有具有4个属性a,b,c,d,求i<j并且ai<aj,bi<bj,ci<cj,di<dj的i,j对数有多少? a,b,c,d均为1~n的排列,即不会有i,j使得ai=aj or bi=bj or ci=cj or di=dj. 题目是离线的,cdq分治可以很好的解决这一类问题.cdq套cdq套cdq再加个bit就行了. 第一层的cdq处理a,保证a有序, 第二层在第一层的基础上处…
2287. [HZOI 2015]疯狂的机器人 题意:从原点出发,走n次,每次上下左右不动,只能在第一象限,最后回到原点方案数 这不煞笔提,组合数写出来发现卷积NTT,然后没考虑第一象限gg 其实就是卡特兰数 只不过这里\(C(i)\)是第\(\frac{i}{2}\)项,奇数为0 令\(f[n]\)为走n次回到原点方案数,\[ f[n]=\sum_{i=0}^{n}C(i)C(n-i)\binom{n}{i}=n!\sum_{i=0}^{n}C(i)\frac{1}{i!}C(n-i)\fra…
2123. [HZOI 2015] Glass Beads ★★★   输入文件:MinRepresentations.in   输出文件:MinRepresentations.out   简单对比时间限制:1 s   内存限制:1024 MB [题目描述] 给定长度为n(n<=300000)的循环同构的字符串,定义最小表示为该字符串的字典序最小的同构表示,请输出这个表示. [输入格式] 第一行是串的长度,第二行是字符串. [输出格式] 串的最小表示. [样例输入] 10 helloworld…
2320. [HZOI 2015]聪聪的世界 时间限制:6 s   内存限制:512 MB [题目描述] 背景: 聪聪的性取向有问题. 题目描述: 聪聪遇到了一个难题: 给出一个序列a1…an,完成以下操作: 1  x 询问从x向左数第一个<ax的数: 2  x 询问从x向左数第一个>ax的数: 3  x 询问从x向右数第一个<ax的数: 4  x 询问从x向右数第一个>ax的数: 5  x y 交换ax与ay: 6  x y w 给ax…ay加上w: 7  x y w 给ax…a…
题面 题目描述 给定一正整数n,对n个点有标号的有向无环图进行计数. 这里加一个限制:此图必须是弱连通图. 输出答案mod 998244353的结果 输入格式 一个正整数n. 输出格式 一个数,表示答案. 样例输入 3 样例输出 18 提示 对于第i个点 1<=n<=10000i. 题目分析 综合COGS2355 [HZOI 2015] 有标号的DAG计数 II与[2013集训胡渊鸣]城市规划. \(f(i)\)用前一题的方法求出,用后一题的方法推出\(g(i)\)即为答案. 代码实现 #in…
Bitset简介 下面介绍C++ STL 中一个非常有用的东西: Bitset 类似于二进制状压,它可以把信息转化成一个01串存储起来 定义方法: 首先要#include<bitset>或#include<bits/stdc++.h> 然后定义一个长度为len的bitset S bitset<len>S; 一些操作 bitset还支持&,^,|三个运算 b._Find_first() 找到第一个1的位置 b._Find_next(x)找到x后面为1的第一个位置…
有标号的DAG计数系列 有标号的DAG计数I 题意 给定一正整数\(n\),对\(n\)个点有标号的有向无环图(可以不连通)进行计数,输出答案\(mod \ 10007\)的结果.\(n\le 5000\) 题解 显然是\(O(n^2)\)来做. 设\(f(i)\)表示\(i\)个点有标号的有向无环图的个数.而\(DAG\)中的特殊点显然只有两种,要么是出度为\(0\),要么入度为\(0\).随便枚举哪一种都行,这里枚举入度为\(0\)的点. 那么得到式子: \[f(n)=\sum_{i=1}^…
[cogs2314][HZOI 2015]Persistable Editor - 可持久化平衡树 题目链接 首先吐槽扯淡几句 [题目描述] 维护一种可持久化的文本编辑器,支持下列操作: 1 p str 在当前版本的第p个字符后插入字符串str,并作为下一版本(数据保证0<=p<=当前字符串的长度,且插入的字符串中只有小写字母) 2 p c 在当前版本中删除从第p个字符开始的后c个字符,并作为下一版本(包含第p个字符,数据保证1<=p<=当前字符串的长度,且p+c-1<=当前…
题面 题目描述 给定一正整数n,对n个点有标号的有向无环图(可以不连通)进行计数,输出答案mod 998244353的结果 输入格式 一个正整数n 输出格式 一个数,表示答案 样例输入 3 样例输出 25 数据范围和约定 对于第i个点 1<=n<=10000*i 增大了数据范围. 题目分析 COGS2353 [HZOI2015]有标号的DAG计数 I升级版. 在这道题的基础上继续往下化: \[ \begin{split} f(n)&=\sum_{i=1}^n\frac {n!}{(n-…
  题目描述: 给定n个数X1-Xn,求下面式子的值(整数部分): n<=107,xi<=109且互不相同. 分析: 其实一开始看见这道题我也吓傻了,k这么大,再说我又是数论鶸渣,打死也不会= = 后来看了各路神犇的题解,又仔细想了想,大概明白了. 首先,k这么大,已经不是高精乘和高精开方所能承受的了(当然,你也可以找个超级计算机算算试试) 所以我们可以把k视为∞(INF). 极限思想,由于xi互不相同,所以每个元素在比它稍微大一点点的数面前都是微乎其微,不会影响到整数部分的. (可以粗略验证…
Description 题库链接 现在在二维平面内原点上有一只机器人,他每次可以选择向右走,向左走,向下走,向上走和不走(每次如果走只能走一格).机器人不能走到横坐标是负数或者纵坐标是负数的点上. 给定操作次数 \(n\) ,求有多少种不同的操作序列使得机器人在操作后会回到原点,输出答案模 \(998244353\) 后的结果. \(1\leq n\leq 100000\) Solution 应该不难想吧... 显然我们先考虑前四种走法...不走的情况可以组合数求出来. 对于一类操作(向上向下或…
Description 你还梦不梦痛不痛,回忆这么重你怎么背得动 ----序言 当年的战火硝烟已经渐渐远去,可仇恨却在阿凯蒂王子的心中越来越深 他的叔父三年前谋权篡位,逼宫杀死了他的父王,用铁血手腕平定了国内所有的不满 只有他一个人孤身逃了出来,而现在他组织了一只强大的军队,反攻的号角已经吹响 大战一触即发,作为他的机智又勇敢的指挥官,你必须要准确及时的完成他布置的任务 这个国家的布局是一棵树,每个城市都是树上的结点,其中每个结点上都有军队ai(人数) 树上的每条边有边权wi,表示通过这条边所需…
★★   输入文件:B_Tree.in   输出文件:B_Tree.out   简单对比时间限制:2 s   内存限制:512 MB [题目描述] 给定一棵有根树,树根为1,一开始这棵树所有节点均为白色 之后给定一个染色序列,第i个数ai表示将ai这个点染黑 之后给定若干询问 询问第L到第R个染黑的黑点和u所有的LCA中深度最大的LCA的编号 [输入格式] 第一行n,m,q 表示节点总数,染色序列长度,询问个数 以下n-1行,每行u,v描述一条边的两个端点 之后m个正整数表示染色序列 之后q行,…
额,其实就是裸的三模数NTT,上一篇已经说过了 哦,还有一个就是对乘起来炸long long的数取模,用long double之类的搞一下就好,精度什么的,,(看出题人心情??) #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #define LL long long #define N 300005 using namespace std; inline in…
Description 给定一正整数n,对n个点有标号的有向无环图进行计数,这里加一个限制:此图必须是弱连通图.输出答案 mod 10007 的结果. Solution 弱连通图即把边变成无向之后成为连通的图 考虑补集转换,用 \(DAG\) 的方案数减去不连通的方案数 设 \(f[i]\) 为大小为 \(i\) 的\(DAG\)的方案数 可以像 \(DAG I\) 那样求出来 \(g[i]\) 为弱连通图的方案数 \(g[n]=f[n]-\sum_{i=1}^{n}g[i]*f[i-j]*C_…
Description 给定一正整数n,对n个点有标号的有向无环图(可以不连通)进行计数,输出答案mod 998244353的结果 Solution 考虑 \(O(n^2)\) DP 枚举出度为 \(0\) 的点,构成的新\(DAG\)方案数为 \(f[i]=f[i-1]*C_{n}^{1}*2^{n-1}\) 即从 \(n\) 个点中选出一个点,作为出度为 \(0\) 的点,然后剩下 \(n-1\) 个点向这个点任意连边 但是 \(f[i-1]\) 中也会有出度为 \(0\) 的点,那么就算重…
题面 题目描述 给定一正整数n,对n个点有标号的有向无环图(可以不连通)进行计数,输出答案mod 10007的结果 输入格式 一个正整数n 输出格式 一个数,表示答案 样例输入 3 样例输出 25 提示 对于20%的数据:n<=5 对于50%的数据:n<=500 对于100%的数据:1<=n<=5000 题目分析 设\(f(i)\)表示有\(i\)个点构成DAG图 设其中\(j\)个点出度为\(0\),则有: \[ f(i)=\sum_{j=1}^i\binom ij2^{(i-j…
[题目描述] 给定一个序列,下标从0开始,分别为a0,a1,a2...an−1,有m个询问,每次给出l和r,求满足ai=aj且l<=i<=j<=r时j−i的最大值 本题强制在线,l和r均进行了加密,解密过程为 l′=min((l+ans)modn,(r+ans)modn) r′=max((l+ans)modn,(r+ans)modn) 其中ans为上次答案 [输入格式] 第一行,两个正整数n,m 第二行,n个非负整数a0,a1,a2...an−1 以下m行,每行两个数l,r,表示询问 […
大意: 给定无向图, 无偶环, 每次询问求[l,r]区间内, 有多少子区间是二分图. 无偶环等价于奇环仙人掌森林, 可以直接tarjan求出所有环, 然后就可以预处理出每个点为右端点时的答案. 这样的话区间询问等价于区间求和, 特殊处理一下左右边界的环即可. 要注意同一个点可能属于多个环!! #include <iostream> #include <iostream> #include <algorithm> #include <cstdio> #incl…