好吧学长说是板子。。。学了之后才发现就是板子qwq


题意:求$ C_n^{w_1}*C_{n-w_1}^{w_2}*C_{n-w_1-w_2}^{w_3}*...\space mod \space P$

当然,如果$\Sigma w_i >n$,则无解。

不会扩展卢卡斯?

#include<cstdio>
#include<iostream>
#define ll long long
#define R register ll
using namespace std;
inline ll g() {
R ret=,fix=; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-:fix;
do ret=ret*+(ch^); while(isdigit(ch=getchar())); return ret*fix;
}
inline ll qpow(ll a,ll b,ll p) { R ret=; a%=p;
for(;b;b>>=,(a*=a)%=p) if(b&) (ret*=a)%=p; return ret;
}
inline void exgcd(ll a,ll b,ll& x,ll& y) {
if(!b) {x=,y=; return ;}
exgcd(b,a%b,y,x),y-=a/b*x;
}
inline ll Inv(ll n,ll p) {
R x,y; exgcd(n,p,x,y); return (x%p+p)%p;
}
ll n,m,p,w[];
inline ll fac(int n,int pi,int pk) {
if(!n) return ; R ans=;
for(R i=;i<pk;++i) if(i%pi) ans=ans*i%pk;//循环节
ans=qpow(ans,n/pk,pk); //快速幂,即循环节的个数
for(R i=;i<=n%pk;++i) if(i%pi) ans=ans*i%pk;//处理最后的散块
return ans*fac(n/pi,pi,pk)%pk; //递归求解
}
inline ll L(int n,int m,int pi,int pk) {
R ind=; for(R i=n;i;i/=pi) ind+=i/pi;
for(R i=m;i;i/=pi) ind-=i/pi;
for(R i=n-m;i;i/=pi) ind-=i/pi;
R N=fac(n,pi,pk),M=fac(m,pi,pk),N_M=fac(n-m,pi,pk);
return N*Inv(M,pk)%pk*Inv(N_M,pk)%pk*qpow(pi,ind,pk)%pk;
}
inline ll solve(int n,int m) { R tmp=p,ans=;
for(R i=;i*i<=tmp;++i) if(tmp%i==) {
R pk=; while(tmp%i==) pk*=i,tmp/=i;
ans=(ans+L(n,m,i,pk)*Inv(p/pk,pk)%p*p/pk%p)%p;
} if(tmp>) ans=(ans+L(n,m,tmp,tmp)*Inv(p/tmp,tmp)%p*p/tmp%p)%p;
return ans;
}
signed main() {
p=g(),n=g(),m=g(); R sum=;
for(R i=;i<=m;++i) sum+=(w[i]=g());
if(sum>n) {printf("Impossible\n"); return ;}
R ans=; for(R i=;i<=m;++i) ans=ans*solve(n,w[i])%p,n-=w[i];
printf("%lld\n",ans);
}

2019.05.18

最新文章

  1. 我的js函数库(持续更新)
  2. jquery 幻灯片 左右滚动
  3. iOS开发网络篇—使用ASI框架进行文件下载
  4. NetBios 的结构体详解(网络控制块NCB)
  5. Codeforces Gym 100114 A. Hanoi tower 找规律
  6. c++ 操作注冊表
  7. hdu 2829 Lawrence(斜率优化DP)
  8. Oracle11G卸载教程
  9. js中字符串转换为数值的两种方法的区别
  10. 去重和分类后缀asp、php等路径 用python3写的
  11. COM接口调用,CreateDispatch失败的问题
  12. Python:Day15 函数
  13. UVA - 1328 Period(循环节kmp)
  14. vue项目中的tab页实现
  15. python练习:http协议介绍
  16. node.js模块化写法入门
  17. python基础--re模块
  18. Eclipse Xml编译错误Referenced file contains errors - spring-beans-4.0.xsd
  19. CSS3之嵌入Web字体
  20. centos7安装ssh服务

热门文章

  1. BurpSuite工具应用及重放攻击实验
  2. EXPLAIN 命令
  3. 优秀开源项目之三:高性能、高并发、高扩展性和可读性的网络服务器架构State Threads
  4. linux命令-rpm安装和卸载
  5. JAVAWeb SSH框架 上传文件,如2007的EXCEL
  6. LoadRunner 参数模拟——快速得到并发用户的进场规则
  7. CodeForces 1107F. Vasya and Endless Credits
  8. koa1创建项目
  9. 1、linux-wget
  10. sklearn保存模型