[SDOI2008]沙拉公主的困惑 线性筛_欧拉函数_逆元_快速幂
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;
}
												
											[SDOI2008]沙拉公主的困惑 线性筛_欧拉函数_逆元_快速幂的更多相关文章
- [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉
		
本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉 题目大意 给定n,m,求在1到n!内与m!互质的 ...
 - BZOJ2186 [Sdoi2008]沙拉公主的困惑  【数论,欧拉函数,线性筛,乘法逆元】
		
2186: [Sdoi2008]沙拉公主的困惑 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 5003 Solved: 1725 [Submit] ...
 - 【BZOJ2186】[Sdoi2008]沙拉公主的困惑 线性筛素数
		
[BZOJ2186][Sdoi2008]沙拉公主的困惑 Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M! ...
 - BZOJ-2186   沙拉公主的困惑   线性筛(筛筛筛)+线性推逆元
		
2186: [Sdoi2008]沙拉公主的困惑 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 2417 Solved: 803 [Submit][St ...
 - 洛谷 P3383 【模板】线性筛素数-线性筛素数(欧拉筛素数)O(n)基础题贴个板子备忘
		
P3383 [模板]线性筛素数 题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范 ...
 - P2158 [SDOI2008]仪仗队 线性筛(欧拉函数和素数表)
		
上三角行恰好是[1,n-1]的欧拉函数 http://www.luogu.org/problem/show?pid=2158#sub //#pragma comment(linker, "/ ...
 - [洛谷P3383][模板]线性筛素数-欧拉筛法
		
Description 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) Input&Output Input 第一行包含两个正整数N.M,分别表示查询的 ...
 - Bzoj 2186: [Sdoi2008]沙拉公主的困惑  乘法逆元,线性筛,欧拉函数,数论
		
2186: [Sdoi2008]沙拉公主的困惑 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 2560 Solved: 857[Submit][St ...
 - 【BZOJ 2186】 2186: [Sdoi2008]沙拉公主的困惑 (欧拉筛,线性求逆元)
		
2186: [Sdoi2008]沙拉公主的困惑 Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞 ...
 
随机推荐
- node——简单的服务器启动+乱码问题解决,响应报文头
			
这个是一个比较简单的代码 // 1.加载hrrp模块 var http=require('http'); // 2.创建一个http服务对象 var server=http.createServer( ...
 - node——读取文件中的路径问题
			
前提 当前的js文件叫_dirnameandfilename.js和hello.txt同在G:\node练习文件夹下 还有一个_dirnameandfilename.js文件在i:/文件夹,但是i:/ ...
 - tcpsock for Golang
			
前记:本文所述的 tcpsock 库托管在 Github. Golang 中的 net 标准库已对 TCP 网络编程作了简洁(却很不简单)的封装,基本上,可直接通过引用其提供的相关接口开发简易的网络应 ...
 - springMVC传递对象参数
			
初学java,由于项目紧急,来不及仔细的研究,在传递参数时就老老实实的一个一个的采用@RequestParam注解方式传递,最近认真看了一下,发现java也具有类似Asp.net Mvc传递对象做参数 ...
 - 对于 wepy 不是内部或外部命令 -- 的解决办法
			
闲来没事继续研究自己之前一直未解决的问题, 就是自己笔记本安装wepy-cli,一直提示"wepy 不是内部或外部命令". 因为公司里面用的是这个框架, 想着自己在家没事的时候去 ...
 - vue无缝滚动的插件开发填坑分享
			
写插件的初衷 1.项目经常需要无缝滚动效果,当时写jq的时候用用msClass这个老插件,相对不上很好用. 2.后来转向vue在vue-awesome没有找到好的无缝滚动插件,除了配置swiper可以 ...
 - js特效——自动滚动
			
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
 - SpringBoot2.0 监听器ApplicationListener的使用-监听ApplicationReadyEvent事件
			
参考:http://www.shareniu.com/article/73.htm 一.需求是想将我的写一个方法能在项目启动后就运行,之前使用了redis的消息监听器,感觉可以照着监听器这个思路做,于 ...
 - 字符拆分存入Map计算单词的个数
			
///计算从命令行输入单词的种类与个数//Map<key,Value>Key-->单词:Value-->数量
 - ASP.NET-AuthorizeAttribute做身份验证操作
			
代码顺序为:OnAuthorization-->AuthorizeCore-->HandleUnauthorizedRequest 如果AuthorizeCore返回false时,才会走H ...