![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
乘法逆元
TheWolfWhistlingSong
蜜の夜明け
展开
-
Bzoj2186:[Sdoi2008]沙拉公主的困惑:欧拉函数+乘法逆元
题目链接:2186:[Sdoi2008]沙拉公主的困惑 首先有 因为m可知有(n!-m!)/m!个 所以答案为 因为,其中pi是m!的质因子,所以答案是,pi是m!的质因子 其中m!的质因子就是m的质因子 还要预处理出pi的逆元,可以递推,公式ine[i]=(mod-mod/i*ine[mod%i]%mod); 离线处理即可,神犇说卡常数然而我并没有卡QwQ #include #i原创 2016-03-30 16:48:26 · 507 阅读 · 0 评论 -
Bzoj2111:[ZJOI2010]Perm 排列计数:树形动态规划+组合数学
题目链接:2111:[ZJOI2010]Perm 排列计数 可以发现这样的一个大于关系构成了一个树结构,而且是一颗线段树式的结构,满足堆性质 设f[i]表示i这个点所代表的子树满足要求的方案数,s[i]为以i为根的子树大小,那么f[i]=f[i f[]和s[]一遍树归就都干掉了,取模的话加个逆元即可 #include #include #include #include #define L原创 2016-04-03 16:30:22 · 540 阅读 · 0 评论 -
Bzoj2242:[SDOI2011]计算器:BSGS
题目链接:2242:[SDOI2011]计算器 第一问快速幂,第二问扩展欧几里得,第三问BSGS 注意BSGS时要判断y为p的倍数时如果z不为0是无解的,wa了好久 为什么我跑得这样慢QAQ…… #include #include #include #include #include #include #define LL long long using namespace std; co原创 2016-04-12 14:09:45 · 381 阅读 · 0 评论 -
Bzoj2142礼物:组合数取模
题目链接:2142:礼物 组合数学推公式是很简单的,关键是取模 注意p并不是质数,而且p可能很大,所以lucas在这道题上并没有什么卵用 存在这样一个事实:设P分解质因数后有一项为pi^ai,那么C(x,y)%p%(pi^ai)=x%(pi^ai),设为xi 而题目中已经给出pi^ai 现在问题转化为怎么求xi 考虑把n!拆开得到1*2*3*4*5*6*...*n,显然和pi^ai不互原创 2016-04-20 17:31:44 · 737 阅读 · 0 评论 -
Bzoj1004:[HNOI2008]Cards:置换群+dp
题目链接:1004:[HNOI2008]Cards 首先看到题目就知道是个有关群论的题 Burnside:真正染色方案数=(Σ每种置换下不变的染色方案数)/置换总数; 发现这里卡片的数量有限制所以Pólya并不能用了 于是要用dp求出不变的方案数 发现两个在某置换下可以互相到达的序列如果本质相同那么必须涂上相同颜色 可以处理处循环节长度,然后裸dp了 注意不洗牌也是一种方案 最后求原创 2016-04-21 10:38:37 · 460 阅读 · 0 评论 -
Bzoj3782:上学路线:组合数学+Lucas+CRT+DP
题目链接:上学路线 设dp[i]为到了第i个坏点且是第一次到达坏点的方案数 那么dp[i]=C(x[i]+y[i],x[i])-∑C(x[i]+y[i]-x[j]-y[j],x[i]-x[j])dp[j](x[j] 对于mod=100003Lucas直接上 对于mod=1019663265分解质因数得到3*5*6973*10007然后每个因数分别Lucas后CRT合并 #include原创 2016-07-13 15:37:09 · 927 阅读 · 0 评论