HDU 4390 Number Sequence ---容斥原理
来源:互联网 发布:外链网盘源码 编辑:程序博客网 时间:2024/06/06 23:18
先对每个数 质数分解。
假如有m个质因子,每个质因子有ai个;n个数
然后容斥原理。。
#include<stdio.h>#include<string.h>#include<algorithm>#include<iostream>#include<math.h>using namespace std;#define inf 0x3f3f3f3f#define ll __int64ll a[20],b[2000],cc[20],d[2000];ll c[50][50];ll mod=1e9+7;int t;ll C(ll n,ll k) { if(c[n][k]!=-1) return c[n][k]; if(k==1) return c[n][k]=n; if(k==0) return c[n][k]=1; if(n==k) return 1; if(k > (n>>1)) return c[n][k]=C(n,n-k); return c[n][k]=(C(n-1,k-1)+C(n-1,k))%mod; } ll calc(ll n,ll m,ll k){ll ans=1,i;for(i=0;i<t;i++){ll t=C(n+d[i],n);ans=(ans*t)%mod;}ans=(ans*C(m,k))%mod;return ans;}int main(){ll n;memset(c,-1,sizeof(c));while(cin>>n){ll i,j,k,cnt=0;memset(b,0,sizeof(b));memset(cc,0,sizeof(cc));for(i=0;i<n;i++){cin>>k;for(j=2;j*j<=k;j++){if(k%j==0){while(k%j==0){b[j]++;k/=j;}}}if(k!=1){if(k<=1000) b[k]++;else{int flag=0;for(j=0;j<cnt;j++)if(k==a[j]){cc[j]++;flag=1;}if(flag==0){a[cnt]=k;cc[cnt]++;cnt++;}}}}t=0;for(i=2;i<=1002;i++){if(b[i])d[t++]=b[i];}for(i=0;i<cnt;i++)d[t++]=cc[i];ll res=0;for(i=0;i<n;i++){if(i%2==0)res=(res+calc(n-1-i,n,i))%mod;elseres=(res+mod-calc(n-1-i,n,i))%mod;}cout<<res<<endl;}}
0 0
- hdu 4390 Number Sequence 【容斥原理】
- HDU 4390 Number Sequence ---容斥原理
- 【HDU】4390 Number Sequence 容斥原理
- hdu 4390 Number Sequence (容斥原理)
- HDU 4390 Number Sequence(容斥原理)
- HDU 4390 Number Sequence 数论-(容斥原理)
- hdu 4390 Number Sequence(容斥原理)
- HDU 4390 Number Sequence (容斥原理+组合计数)
- 【解题报告】 HDU 4390 Number Sequence -- 容斥原理(不好理解)
- 周赛 1007 题解 hdu 4390 Number Sequence (质因数分解+组合数学+容斥原理)
- hdu 4390 Number Sequence(组合数学+容斥定理)
- HDU 4390 Number Sequence(组合+容斥)
- HDU 5297 Y sequence (容斥原理 +迭代)
- HDU 5297 Y sequence 数论,迭代,容斥原理
- HDU4390Number Sequence(容斥原理)
- hdu 4390 Number Sequence
- HDU 4390 Number Sequence
- hdu 4390 Number Sequence
- IOS APP开发提交流程证书问题
- 指针(一)
- 工作基本信息
- Java学习经验(一)多线程初识
- Scala学习笔记2 (Lang上篇)
- HDU 4390 Number Sequence ---容斥原理
- OpenERP新手易犯错误之res.model
- Java学习经验(二):线程间的同步
- pivoting insert(旋转插入)
- Oracle Database Server Messages(五) . . . .
- C++遍历中删除std::map元素
- 基于用户投票的排名算法(一):Delicious和Hacker News
- UVa 301 - Transportation
- JMS和AMQP的区别