Code:

#include<cstdio>
using namespace std;
typedef long long ll;
const int maxn=10000000+1;
long long mod;
ll fac[maxn];
ll inv[maxn];
ll anss[maxn];
int cnt,prime[maxn];
bool vis[maxn];
ll pow(ll base,ll k)
{
ll ans=1;
while(k)
{
if(k&1)
ans=(ll)(ans*base)%mod;
k/=2;
base=(ll)(base*base)%mod;
}
return ans;
}
ll get_inv(ll a){return pow(a,mod-2);}
void init()
{
fac[1]=1;
inv[1]=1;
for(int i=2;i<maxn;++i)
{
fac[i]=(fac[i-1]*i)%mod;
if(!vis[i])prime[++cnt]=i,inv[i]=get_inv(i);
for(int j=1;j<=cnt&&prime[j]*i<maxn;++j)
{
vis[prime[j]*i]=1;
if(i%prime[j]==0)break;
}
}
anss[1]=1;
for(int i=2;i<maxn;++i) //找M
{
if(!vis[i])
{
anss[i]=(anss[i-1]*(i-1))%mod;
anss[i]=(anss[i]*inv[i])%mod;
}
else anss[i]=anss[i-1];
}
}
int main()
{
int T;
scanf("%d %lld",&T,&mod);
init();
while(T--)
{
int n,m;
scanf("%d%d",&n,&m);
ll ans;
ans=(anss[m]*fac[n])%mod;
printf("%lld\n",ans);
}
return 0;
}

最新文章

  1. 【工业串口和网络软件通讯平台(SuperIO)教程】一.通讯机制
  2. zorka源码解读之Beanshell与zorka的交互实现
  3. 大数据时代的IT架构设计
  4. js 随笔
  5. [小技巧] shell 下查看串口是否工作正常
  6. openresty 前端开发进阶一之http后端
  7. iOS:城市级联列表的使用
  8. Ioc 控制反转 实例
  9. 命令行连接wifi
  10. C语言的格式控制符
  11. Git分支(3/5) -- 禁用 Fast Forward 合并
  12. CSS空心圆
  13. day23--面向对象之封装、继承、多态
  14. UVA10384-The Wall Pushers(迭代加深搜索)
  15. 红黑树与AVL树
  16. 【做题】arc070_f-HonestOrUnkind——交互+巧妙思维
  17. java se的那些细节
  18. Docker打DB2 9.7镜像采坑相关
  19. sqoop1.4.6数据迁移
  20. [多问几个为什么]为什么匿名内部类中引用的局部变量和参数需要final而成员字段不用?(转)

热门文章

  1. sybase profile
  2. Caffe_Scale层解析
  3. swift使用查阅资料备份1
  4. ZBrush中Local模式的旋转
  5. java真实面试题(1)
  6. 工作流Activiti学习地址
  7. Client初见——python
  8. UVA1584-Circular Sequence(紫书例题3.6)
  9. UDP Linux编程(客户端&amp;服务器端)
  10. 正式版的Linux Kernel 5.1来了,非LTS