CE玩家

人生最大的快乐,就是做别人说你做不到的事。

[补集转换] Topcoder SRM563 DIV1. CoinsGame

枚举两个点,如果经过一系列操作使得一个留在棋盘上一个不在,那么这个点对是有价值的 那么合法的放棋子的方案一定包含至少一个有价值的点对 但是点对个数是 O((nm)2)O((nm)2)O((nm)^2) 的,直接容斥不行 补集转化一下,可以发现如果点对 (a,b)(a,b)(a,b) 和点对 ...

2018-03-24 13:58:12

阅读数:89

评论数:1

[状压DP || 容斥 矩阵树定理] Codeforces 53E. Dead Ends

容斥练习题这题状压DP的做法跟今年NOIP那题状压一样简单——vectorxj也可以容斥 枚举叶子的集合 SS,算出非叶子的点的导出子图的生成树个数,再乘上每个叶子和这些点的边的数量 这样可以算出 fif_i,至少有 ii 个叶子的方案数然后就跟一般容斥一样 gi=fi−∑j=i+1n(ji...

2018-01-04 11:52:50

阅读数:180

评论数:0

[计数 DP]Atcoder AGC001 E. BBQ Hard

答案是求 ∑i≠j(ai+aj+bi+bjai+aj)\sum_{i\neq j}{a_i+a_j+b_i+b_j\choose a_i+a_j}这就相当于从平面内的 (−ai,−bi)(-a_i,-b_i) 走到 (aj,bj)(a_j,b_j) 的方案数把点放到平面上,DP就好了#inclu...

2017-12-06 20:47:43

阅读数:179

评论数:0

[容斥] Hihocoder Challenge 32 .B Rikka with String II

字典树实际上就是把前缀给缩起来如果只有两个串,那么答案就是两个串的长度和减去LCP这就是个容斥的形式,答案就是 2?的数量+∑S∈U(−1)|S|+1LCP(S)2^\text{?的数量}+\sum_{S\in U} (-1)^{|S|+1}LCP(S)前面的 2?的数量2^\text{?的数量}...

2017-12-05 20:44:12

阅读数:90

评论数:0

[数位DP 多重背包计数] BZOJ5003. 与链

每一位二进制分开考虑那么在一个合法的序列中,一定是前面几个数当前二进制位是1,其他都是0数位DP,每一位的1最多出现k次,这就是一个多重背包多重背包转移用前缀和优化就好了O(nlogn)O(n\log n)#include <cstdio> #include <iostream&...

2017-11-26 11:02:49

阅读数:142

评论数:0

[DP] Atcoder AGC013D. Piling Up

假设刚开始有 xx 个红色, n−xn-x 个蓝色一个合法的数列有多个初始的 xx 值,对于最小的 xx 值,在操作的过程中,xx 会变成0那么 fi,j,0..1f_{i,j,0..1} 表示操作了 ii 次,当前 x=jx=j ,xx 是否变成过0答案就是 ∑fm,i,1\sum f_{m,i...

2017-10-28 15:05:47

阅读数:258

评论数:0

[计数 补集转换][阈值] Codechef SEAARC.Sereja and Arcs

传送门 %%%度神 很强的计数题 题目就是求形如ABAB的个数,发现这个很难求,补集转换一下,答案就是总数减去AABB和ABBA的个数 求总数很简单,就是∏i=1n(ai2)\prod_{i=1}^n{a_i\choose 2}aia_i是第i中颜色个数 AABB的个数可以枚举p,然后用...

2017-08-15 15:45:22

阅读数:289

评论数:0

[计数][容斥] LOJ#6065 || BZOJ4927 && 2017 山东一轮集训 Day3. 第一题

因为要选6根木棒,发现肯定是1,1,2,2或1,1,1,3形式。 可以枚举2和3的部分,然后推一推,容斥容斥就可以了 但是细节贼多#include <cstdio> #include <iostream> #include <algorithm> #incl...

2017-07-11 17:48:12

阅读数:586

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭