HDU 4675GCD of Sequence(大组合数取模 容斥原理 组合数学)
来源:互联网 发布:简述网络教育的意义 编辑:程序博客网 时间:2024/05/10 12:38
Problem Link
GCD of Sequence
大意,对于序列
Analyse
设
f(d)=∑d|ngcd(bi)=n
我们用另一种方式技计数
设
if n-sum >k,显然
if
(M/d)n−sum∗Ck−n+sumsum∗(M/d−1)k−n+sum
然后再把所有的gcd(d*2),…,gcd(d*s)减掉,就是gcd(d)的个数,
先预处理一下组合数的计算,然后从后往前算,这样复杂度为
ACcode
#include <iostream>#include<cstdio>#include<cstring>#include<algorithm>#define Debug(x) cout<<(x)<<endlusing namespace std;typedef long long LL;const int MOD = 1e9+7;const int maxn = 3e5+10;LL ans[maxn];LL fact[maxn];LL fact_inv[maxn];int num[maxn];LL power_mod(LL x,LL n){ LL res = 1; while(n) { if(n&1)res = res*x%MOD; x = x*x%MOD; n>>=1; } return res;}void init(){ fact_inv[0] = fact[0] = 1; for(int i=1 ; i<maxn ; ++i) { fact[i] = fact[i-1]*i%MOD; fact_inv[i] = power_mod(fact[i],MOD-2); }}LL cal(int n,int m){ return (fact[n]*fact_inv[m]%MOD)*fact_inv[n-m]%MOD;}int main(){ //freopen("H:\\c++\\file\\stdin.txt","r",stdin); int n,m,k; init(); while(scanf("%d%d%d",&n,&m,&k)!=EOF) { memset(num,0,sizeof(num)); for(int i = 0 ; i<n ; ++i) { int x; scanf("%d",&x); num[x]++; } for(int i = m ; i>=1 ; --i) { int sum = 0; for(int j = i ; j<=m ; j+=i) sum+=num[j]; if(n-sum>k){ ans[i] = 0 ; continue;} ans[i] = (power_mod(m/i,n-sum)*power_mod(m/i-1,k-n+sum%MOD)%MOD)*cal(sum,k-n+sum)%MOD; for(int j = 2*i ; j<=m ; j+=i) ans[i]=(ans[i]-ans[j]+MOD)%MOD; } cout<< ans[1]; for(int i = 2 ; i<=m ; ++i) printf(" %I64d",ans[i]); printf("\n"); } return 0;}
0 0
- HDU 4675GCD of Sequence(大组合数取模 容斥原理 组合数学)
- hdu 1695 GCD(组合数学:容斥原理)
- HDU 1695 GCD (数论-整数和素数,组合数学-容斥原理)
- HDU 1695 GCD (数论-整数和素数,欧拉函数,组合数学-容斥原理)
- hdu 4390 Number Sequence(组合数学+容斥定理)
- 周赛 1007 题解 hdu 4390 Number Sequence (质因数分解+组合数学+容斥原理)
- HDU 4390 Number Sequence (容斥原理+组合计数)
- HDU 5073 Coprime(容斥原理+组合数学)
- HDU 1695 GCD(容斥+组合)
- 容斥原理(组合数学)总结
- HDU 4675 GCD of Sequence(数学)
- hdu 5496 Beauty of Sequence 组合数学
- 组合数学第三发 容斥原理 hdu 1796
- hdu 2204 Eddy's爱好 [容斥原理]【组合数学】
- hdu 5201 容斥原理+组合数取模
- HDU 4675-GCD of Sequence(莫比乌斯反演+组合数+逆元)
- 组合数学-容斥原理专辑
- 组合数学 容斥原理 专题
- 开博客啦
- 50种方法优化SQL Server
- 手机及电脑的护眼模式开启
- https原理及tomcat配置https方法
- Visual Studio 2015 update 3各版本下载地址
- HDU 4675GCD of Sequence(大组合数取模 容斥原理 组合数学)
- MySQL 5.7的 行格式
- hpu 1194: Judge(快速幂)
- oracle 中CLOB与BLOB、BFILE
- leetcode - Roman to Integer 与 Integer to Roman
- C#设计模式-抽象工程模式(6)
- iOS10 UI教程视图的绘制与视图控制器和视图
- 说说Flashback Drop Table缺陷
- Queue操作,该项提交WA,不知原因