sol:很显然就是找出所有质因数,然后分别塞进去就行了,怎么塞就是组合数。感觉就是道小学奥数题

#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{ll s=0; bool f=0; char ch=' ';while(!isdigit(ch))    {f|=(ch=='-'); ch=getchar();}while(isdigit(ch)) {s=(s<<3)+(s<<1)+(ch^48); ch=getchar();}return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{if(x<0) {putchar('-'); x=-x;}if(x<10) {putchar(x+'0'); return;}write(x/10); putchar((x%10)+'0');
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int Mod=1000000007;
int n;
map<int,int>Map;
int num[1000005],cnt[1000005];
int fac[15505],invf[15505];
inline int ksm(int x,int y)
{int ans=1;while(y){if(y&1) ans=1LL*ans*x%Mod;x=1LL*x*x%Mod;y>>=1;}return ans;
}
inline int C(int n,int m)
{int oo;oo=1LL*fac[n]*invf[m]%Mod*invf[n-m]%Mod;return oo;
}
int main()
{freopen("codeforces396A_data.in","r",stdin);int i,j,k,x;R(n);fac[0]=invf[0]=1;for(i=1;i<=15500;i++) fac[i]=1LL*fac[i-1]*i%Mod;invf[15500]=ksm(fac[15500],Mod-2);for(i=15499;i>=1;i--) invf[i]=1LL*invf[i+1]*(i+1)%Mod;for(i=1;i<=n;i++){R(x);for(j=2;j<=sqrt(x);j++) if(x%j==0){int oo=0;while(x%j==0) {x/=j; oo++;}if(!Map[j]){Map[j]=++(*num); num[*num]=j; cnt[*num]=oo;}else cnt[Map[j]]+=oo;}if(x>1){if(!Map[x]){Map[x]=++(*num); num[*num]=x; cnt[*num]=1;}else cnt[Map[x]]++;}}int ans=1;for(i=1;i<=*num;i++){ans=1LL*ans*C(cnt[i]+n-1,n-1)%Mod;}Wl(ans);return 0;
}

View Code

转载于:https://www.cnblogs.com/gaojunonly1/p/11318108.html

codeforces396A相关推荐

最新文章

  1. 基于视觉惯性里程计的无监督深度补全方法
  2. 2019需要关注的几大AI趋势
  3. 为什么 Redis 默认 16 个库?90% 以上程序员不知道!
  4. LeetCode 编程 二
  5. 【Python】20个小技巧,让数据可视化图表更专业!
  6. mysql数据库压缩备份_MySQL数据库之mysql数据库备份命令分享(mysql压缩数据库备份)...
  7. unity 解决引入dlopen api的问题
  8. 51nod 1343 行列式的根
  9. sql 日期和当前日期时间差_详解PostgreSQL 如何获取当前日期时间
  10. Socket网络编程【获取本机IP】
  11. unity快捷放置物体操作
  12. 加入在线服务--在线多人共享屏幕
  13. LTE 调制与解调——QPSK,16QAM,64QAM误码率比较
  14. 简约实用个人简历自我介绍PPT模板
  15. 中国传统文化课程笔记
  16. Linux虚拟机克隆后网络冲突解决办法
  17. 使用KEPWARE软件采用FOCAS协议读取数控机床数据(含地址表)
  18. 基于HTML旅游酒店主题网页项目的设计与实现——度假酒店预订网站(5页面)HTML+CSS+JavaScript...
  19. C语言怎样判断乘法越界,如何判断C语言算术运算的越界问题
  20. java 哲学家_Java哲学家进餐问题|多线程

热门文章

  1. Grunt插件之LiveReload 实现页面自动刷新,所见即所得编辑
  2. JVM经常使用的调优參数
  3. CSS 行内格式化上下文中的各种高度计算
  4. iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、view...
  5. 错误:无法作为数据库主体执行,因为主体 dbo 不存在、无法模拟这种类型的主体,或您没有所需的权限...
  6. 操作系统中的进程与线程
  7. mirc635.rar
  8. Nginx处理请求的11个阶段
  9. SourceTree 3.0.17如何跳过注册进行安装? — git图形化工具(一)
  10. 关于JS 事件冒泡和onclick,click,on()事件触发顺序