
lucas定理
Lynstery
一只蒟蒻
展开
-
[方差+lucas定理] 51nod 算法马拉松25 D. 小Q的集合
题意小Q有一个集合 S ,它的元素个数 |S|=n 。 对于 S 的任意一个子集合 T ,定义 f(T)=|T|kf(T)=|T|^k ,定义 T 关于 S 的补集为 S−T 。 小Q想知道,如果他等概率地选择一个 S 的子集 T ,那么 f(T)−f(S−T) 的方差是多少。 由于这个方差值可能很大,不妨设其为 v ,你只需要给出 (v⋅2n)%m(v⋅2^n) \% m 的值即可。 k原创 2017-06-03 09:06:26 · 1558 阅读 · 0 评论 -
[lucas+数位DP] 2017 计蒜之道 复赛 E. 商汤智能机器人
这题就是,把坐标斜一下看,相当于一个网格图,可以对角线走。如果不能对角线走就是经典的组合数了,所以我们可以尝试枚举经过多少条对角线边来写出答案的式子,设 A=x+y2,B=x−y2 A=\frac {x+y} 2,B=\frac {x-y} 2 , 则有ans=∑i=0B(A+B−ii)∗(A+B−2iA−i) ans=\sum_{i=0}^{B} {A+B-i \choose i}*{ A+B-2原创 2017-10-04 21:25:22 · 519 阅读 · 0 评论 -
[Lucas+数位DP] 2015 计蒜之道 复赛 C. 360的产品试用体验
就是Lucas+数位DP的套路。这题和一般的数位DP相比有个特别的限制是 x1+x2+x3≤nx1+x2+x3\le n,类似HNOI 2007《梦幻岛宝珠》的处理方法,即相当于借位,保存当前这位剩余的数,转移时乘P传给下一位。 有3个数要填,一开始我写的是每次转移一位,转移要O(473)O(47^3),结果T了。实际上应该每次转移一个数的一位,就好了。#include<cstdio> #incl原创 2017-10-11 16:07:41 · 446 阅读 · 0 评论 -
[Lucas + 高维前缀和] HHHOJ#75. 虚妄之诺
我太菜了…做过类似的题还不会做…. 这题和之前做过的 ZROI 2017提高2 World Of Our Own 很像。总体思路就是异或的贡献是一个组合数的式子,用卢卡斯判断组合数奇偶,就转化成了子集和的形式,经典的高维前缀和就好了。 具体来说,我们考虑每个点对根的贡献,只需关注它到根的路径上的点被加的贡献。 1 1 1 1 1 1 1 1 1 1 1 2 3 4原创 2017-10-24 15:10:02 · 752 阅读 · 0 评论 -
[高维前缀和] ZROI 2017提高2 World Of Our Own
好题。设 f[i]f[i] 表示 ii 次操作之后的答案。则显然有 f[i]=Xorij=0[(ji)is odd]∗a[j] f[i]=\text{Xor}_{j=0}^{i} [{ j\choose i} is\ odd]*a[j] 现在我们需要考虑如何判断一个组合数的奇偶性。考虑 lucaslucas : (ij) % 2=∏k(ikjk) { i \choose j} \text{原创 2017-10-06 21:33:57 · 682 阅读 · 0 评论 -
[数论杂题] BZOJ1951: [Sdoi2010]古代猪文
为了数论而数论的题…..没什么技术含量… 就是求: G∑i|n(ni)%P=G(∑i|n(ni)%ϕ(P))%P G^{\sum_{i|n} {n\choose i}} \text{%} P=G^{(\sum_{i|n} {n\choose i}\text{%} \phi(P))} \text{%} P 现在需要求 (∑i|n(ni))%M(\sum_{i|n} {n\choose i})\原创 2017-11-28 20:36:04 · 511 阅读 · 0 评论