bzoj 2186 [Sdoi2008]沙拉公主的困惑 欧拉函数
来源:互联网 发布:js查看cookie过期时间 编辑:程序博客网 时间:2024/05/02 00:51
n>=m,所以就变成了求
而
只需要预处理出素数,阶乘,逆元即可
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cmath>#define N 10000001using namespace std;bool bo[N+100];long long prime[700000],fc[N+100],ans[N+100],ny[N+100];int tot,T,n,m,p;void init(){ fc[1]=1; for(int i=2;i<=N;i++)fc[i]=(fc[i-1]*i)%p; for(int i=2;i<=N;i++){ if(!bo[i])prime[++tot]=i; for(int j=1;j<=tot&&i*prime[j]<=N;j++){ bo[i*prime[j]]=1; if(!i%prime[j])break; } } ny[1]=1; for(int i=2;i<=N&&i<p;i++)ny[i]=(p-p/i)*ny[p%i]%p; ans[1]=1; for(int i=2;i<=N;i++){ if(!bo[i])ans[i]=ans[i-1]*(i-1)%p*ny[i%p]%p; else ans[i]=ans[i-1]; }}int main(){ scanf("%d%d",&T,&p); init();//printf("tot==%d\n",tot); while(T--){ scanf("%d%d",&n,&m); printf("%d\n",(fc[n]*ans[m])%p); } return 0;}
阅读全文
0 0
- bzoj 2186 [Sdoi2008]沙拉公主的困惑 欧拉函数
- 【BZOJ 2186】[Sdoi2008]沙拉公主的困惑 欧拉函数
- [BZOJ 2186][Sdoi2008]沙拉公主的困惑:欧拉函数
- bzoj 2186 [Sdoi2008]沙拉公主的困惑 欧拉函数
- BZOJ 2186: [Sdoi2008]沙拉公主的困惑 [欧拉函数][逆元]
- 欧拉函数+逆元 [Sdoi2008]沙拉公主的困惑
- [BZOJ2186][SDOI2008]沙拉公主的困惑 欧拉函数
- bzoj 2186: [Sdoi2008]沙拉公主的困惑
- 【bzoj 2186】: [Sdoi2008]沙拉公主的困惑
- BZOJ 2186 [Sdoi2008]沙拉公主的困惑
- BZOJ 2186: [Sdoi2008]沙拉公主的困惑
- bzoj 2186 [Sdoi2008]沙拉公主的困惑
- BZOJ 2186 [Sdoi2008] 沙拉公主的困惑
- BZOJ 2186 [Sdoi2008]沙拉公主的困惑
- BZOJ 2186 [Sdoi2008] 沙拉公主的困惑 逆元/欧拉定理
- 2186: [Sdoi2008]沙拉公主的困惑 线性筛素数+欧拉函数+乘法逆元
- [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉
- BZOJ 2186 SDOI2008 沙拉公主的困惑 数论
- 【二分图匹配入门专题1】F
- ubuntu如何实现双屏显示
- Linux DMA meory简述
- 面向对象的c语言
- Self08.13-1
- bzoj 2186 [Sdoi2008]沙拉公主的困惑 欧拉函数
- 萌新的linux之旅21
- Python打印九九乘法表
- [HNOI2012]集合选数
- [SCOI2005]互不侵犯King
- 旅游景点atr
- [NOIP2016]愤怒的小鸟
- [Usaco2005 Open]Disease Manangement 疾病管理
- [SCOI2007]排列