关闭
当前搜索:

[哈密顿路径 FFT 容斥] TCO 2016 Final HamiltonianPaths

只能走补图的边 那么原图色的边不能走 那么我们容斥走了几条原图的边 这些边肯定是一些链 把链缩成一个点 那么不考虑其他不合法边用不用的情况下 贡献是 m的阶乘 m是缩完够的点数 然后 因为缩起来的点只可能是在同一个模板图中 那么对于最后总点数m的缩点方案数 是可以先处理出单个模板图的方案数 然后fft的 状压dp预处理模板图// BEGIN CUT HERE #include<c...
阅读(189) 评论(0)

[容斥] BZOJ 4762 最小集合

看fls的题解吧#include #include #include using namespace std;const int N=1055; const int P=1e9+7;inline void add(int &x,int y){ x+=y; if (x>=P) x-=P; }#define read(x) scanf("%d"...
阅读(129) 评论(0)

[DP 容斥原理] HDU 5519 Kykneion asma

扔下题解就跑 其实我也没全搞懂 先挖个坑#include #include #include #include using namespace std; typedef long long ll;const int P=1e9+7; const int N=20005;ll fac[N],inv[N]; int cnt[1...
阅读(290) 评论(0)

[meet in middle 矩阵树定理 容斥原理] SRM 551 div1 SweetFruits

集训队论文传送门大概就是我们先用meet in middle求出有恰好k个真甜的方案数 然后我们求这些东西的生成树个数 乘在一起的和就是答案 我们让真甜连真甜 真甜连不甜 假甜连不甜 不甜连不甜 跑一发矩阵树定理 这样只能保证这些真甜的某个子集是真甜 那么我们需要用 0~k-1 的简单容斥一下// BEGIN CUT HERE #include #include<sstr...
阅读(254) 评论(0)

[大力容斥] 省选模拟赛 4 B. 买买买 buy

题目大意 n 种物品,价格 ci 元, k 个人每人有m元 每人会购买若干种物品,可以为空,每种最多一个,总价格不能超过m 总共有多少种不同的购买方案使得每种物品至少被购买了两次 大力容斥一波 我们先枚举哪些是次数小于2的 然后再枚举子集表示哪些是买了一个的 然后把这些个分给某些人 就是个集合的拆分 复杂度是bell数 卡卡常 剪剪枝 就A了…#include #...
阅读(168) 评论(0)

[容斥原理 DP] BZOJ 4767 两双手

首先一个向量可以被两个向量唯一表示 然后就转化为有障碍点的网格图路径计数 这应该是个经典的容斥模型 果然是NOIP模拟赛啊 如果不考虑障碍 那么答案是path(s,t)=Cmn+mpath(s,t)=C_{n+m}^m 然后我们考虑容斥 枚举路径上碰到的第一个障碍点vv Ans=Cmn+m−fv∗path(v,t)Ans=C_{n+m}^m-f_v*path(v,t) 其中fvf_v表示从...
阅读(461) 评论(0)

[容斥原理] BZOJ 2839 集合计数

考虑容斥原理 计算交集大小至少为i的集合有多少种 首先需要选出ii个元素 方案为CinC_n^i 其它2n−i2^{n−i}个集合每个可选可不选 一共22n−i−12^{2^{n−i}}−1种 故答案为∑i=kn(−1)i−kCinCki(22n−i−1)\sum _{i=k}^n (−1)^{i−k} C_n^i C_i^k (2^{2^{n−i}}−1)#include...
阅读(381) 评论(0)

[带标号无向连通图计数 容斥原理 多项式求逆 多项式求ln 模板题] BZOJ 3456 城市规划

可以通过容斥求出答案的表达式fi=2C2i−∑j=1i−1Cj−1i−1∗fj∗2C2i−jf_i=2^{C_i^2}-\sum_{j=1}^{i-1} C_{i-1}^{j-1}*f_j*2^{C_{i-j}^2} 其中前一部分表示i个点任意连边 后半部分枚举1所在的连通块然后容斥掉∑j=1ifj(j−1)!∗2C2i−j(i−j)!=2C2i(i−1)!\sum_{j=1}^i {f_j \o...
阅读(449) 评论(0)

[容斥 状压DP 树形DP] BZOJ 4455 [Zjoi2016]小星星 & UOJ #185 【ZJOI2016】小星星

杜老师说的哦 UOJ上需要卡常 #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p...
阅读(231) 评论(0)

[Lucas定理 数位DP 容斥原理] 2015 计蒜之道 复赛 360的产品试用体验

直接上官网题解吧:http://blog.jisuanke.com/?p=146 题意即求 其中 且 因为 47 是质数,如果把 ai, li, ri, xi 写作 47 进制数 因为 47 是质数,根据 Lucas定理 ,题目转换为求 的值,同时满足: –  字典序不小于  不大于  – x1 + x2 + x3 ≤ n....
阅读(479) 评论(0)

[容斥系数 记录状态DP] 2016 计蒜之道 初赛 第四场 遗失的支付宝密码

题解:http://blog.jisuanke.com/?p=270 其实答案最后答案的结构显然是 c_1 \cdot m^1 + c_2 \cdot m^2 + ... + c_n \cdot m^nc​1​​⋅m​1​​+c​2​​⋅m​2​​+...+c​n​​⋅m​n​​ 这样的,系数 c_ic​i​​ 只和nn 有关,于是可以本地打表出来。这样就可以很快解决这个 case。 ...
阅读(216) 评论(0)

[DP 容斥] BZOJ 2669 [cqoi2012]局部极小值

从小到大放 如果一个格子是极小值 一定比周围先放 根据这个dp 但是这样不保证其他地方也成为极小值 那么容斥一下 最多8个是极小值 #include #include #include #include #include #define cl(x) memset(x,0,sizeof(x)) using namespace std; typedef pair abcd; typedef...
阅读(292) 评论(0)

[组合 容斥 DP] BZOJ 2863 愤怒的元首

题解:http://blog.csdn.net/werkeytom_ftd/article/details/51182412 我们设f[i]表示i个带编号结点组成的合法DAG的个数。  如果删去DAG中所有入度为0的结点,接下来的DAG也是一个合法DAG。  但我们不知道有多少入度为0的结点,所以我们想要得到至少有0个入度为0的结点的DAG个数(对就是这么神奇)。  那就容斥呗。  ...
阅读(284) 评论(0)

[DP 容斥原理] BZOJ3622 已经没有什么好害怕的了 && BZOJ 2024 [SHOI2009] 舞会

传送门:http://www.cnblogs.com/dyllalala/p/3900077.html 比较好的DP题 #include #include #include #define P 1000000009 using namespace std; typedef long long ll; inline char nc(){ static char buf[100000],*p1...
阅读(309) 评论(0)
    个人资料
    • 访问:309413次
    • 积分:12408
    • 等级:
    • 排名:第1311名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:54条
    最新评论