给n<=50个长度m<=1000的二进制数,记他们为集合T,求满足下面条件的集合S数:令$M=2^m-1$,1.$a \epsilon S \Rightarrow a \ \ xor \ \ M \epsilon S$:2.$a \epsilon S,b \epsilon S \Rightarrow a \ \ and \ \ b \epsilon M$:3.$T \subseteq S$:4.S中每个数都<=M.答案膜1e9+7. 首先不看这T个数,先想想自由状态下有多少个S.由条件1…
[题目]E. New Year and Entity Enumeration [题意]给定集合T包含n个m长二进制数,要求包含集合T且满足以下条件的集合S数:长度<=m,非和与的结果都在集合中.(详细的题意见原题) [算法]数学(贝尔数) [题解]这道题确实不太能理解这种做法,所以就简单写写了. 先不考虑S须包含集合T. 对于一个方案,按位考虑,所有含位 i 的数字and起来得到含该位的最小数字,记为f[i]. 对于f[x]≠f[y],有f[x]&f[y]=0,证明:!(f[x]&f…
[CF908E]New Year and Entity Enumeration 题意:给定$M=2^m-1$,我们称一个集合S是好的,当且仅当它满足:1.$\forall a\in S,a\  \mathrm{xor}\  M \in S$,2.$\forall a,b\in S,a\  \mathrm{and}\  b \in S$,3.$\forall a\in S,a\le M$. 现在给定集合T,求有多少个好的集合S,满足T是S的子集. m<=1000,|T|<=50. 题解:显然有了…
贝尔数   贝尔数以埃里克·坦普尔·贝尔(Eric Temple Bell)为名,是组合数学中的一组整数数列,开首是(OEIS的A000110数列):   Bell Number Bn是基数为n的集合的划分方法的数目.集合S的一个划分是定义为S的两两不相交的非空子集的族,它们的并是S.例如B3 = 5因为3个元素的集合{a, b, c}有5种不同的划分方法: {{a}, {b}, {c}} {{a}, {b, c}} {{b}, {a, c}} {{c}, {a, b}} {{a, b, c}}…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2512 题目大意:因为长期钻研算法, 无暇顾及个人问题,BUAA ACM/ICPC 训练小组的帅哥们大部分都是单身.某天,他们在机房商量一个绝妙的计划"一卡通大冒险".这个计划是由wf最先提出来的,计划的内容是,把自己的联系方式写在校园一卡通的背面,然后故意将自己的卡"遗失"在某处(如水房,TD,食堂,主M....)他们希望能有MM看到他们遗失卡,能主动跟他们联系,这样就…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3501 用贝尔三角形 p^2 地预处理 p 以内的贝尔数.可以模(mod-1)(它是每个分解下的质因子的倍数,所以不影响分开算的时候). 用公式:\( Bell[n+p^{m}]=m*Bell[n]+Bell[n+1] (mod p) \) \( Bell[n+p]=Bell[n]+Bell[n+1] (mod p) \) 把 n 看成 p 进制,O( p^2 * log m ) 地算. 大…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3501 用贝尔三角预处理贝尔数,拆模数并在 \( p \) 进制下使用公式,因为这样每次角标增加的是 \( p^{k} \): 循环使用数组非常优美!0~p 的角标背后是许多 \( p \) 的整数次幂,而角标那个数字是它的 \( p^0 \) 上的数,所以最后取 \( b[d[0]] \): Claris 写得太好了!http://www.cnblogs.com/clrs97/p/4714…
hdu2643 题意:$n$ 个人的排名情况数($n \leq 100$) 分析:考虑 $n$ 个有区别的球放到 $m$ 个有区别的盒子里.无空盒的方案数为 $m!\cdot S(n, m)$. 这题中 $m$ 可取 $1 \sim n$(可能排名相同),累加即可. #include<bits/stdc++.h> using namespace std; typedef long long ll; +; ; int Sti[maxn][maxn], fact[maxn]; //第二类司特林数.…
题意 设第 $n$ 个Bell数为 $B_n$,求 $B_n \ mod  \ 95041567$.($1 \leq  n  \leq  2^{31}$) 分析 贝尔数的概念和性质,维基百科上有,这里用到两点. 若 $p$ 是任意素数,有 $B_{p+n} = B_n + B_{n+1}(mod \ p)$ 每个贝尔数都是相应第二类斯特林数之和,即 $B_n = \sum_{k=1}^nS(n, k)$ 贝尔数的这个递推式只适合质数,我们可以将模数拆成质数,然后用CRT合并. $95041567…
先按照绿点进行分块 第一个绿点和最后一个绿点之后很好处理不说了 两个绿点之间的讨论: 有两种方案 1:红(蓝)点和绿点顺序连接,距离为相邻绿点距离(也就是双倍绿点距离) 2:红(蓝)点和绿点的点阵中寻找最大的距离边,不连这一条,其他都顺序连,当然这样不连通,最后再绿点连接.(一个绿点距离+红(蓝)点阵处理 可以看到样例就是这样做的) #include<iostream> #include<map> #include<iostream> #include<cstri…