[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!互质的钞 ...
随机推荐
- Hibernate框架学习(九)——Criteria语法
一.语法 1.基本查询 2.条件查询 3.分页查询 4.排序查询 5.统计查询 二.离线查询 1.非离线的Criteria 2.离线的Criteria 3.演示 public class Demo2 ...
- mac修改管理员权限命令
我们在进行mac 命令行安装软件的时候,有的时候会遇见这样的问题:Please try running this command again as root/Administrator. 如图: 解决 ...
- 杭电 1114 Piggy-Bank【完全背包】
解题思路,首先很容易想到方程f[v]=min(f[v],f[v-w[i]+p[i]),因为是要求当包装满的时候(因为题目中给出的是包的质量是一定的),包里面装的钱最少,所以将f[]初始化成一个很大的数 ...
- TensorFlow初学
TensorFlow初学 基本概念 1.激活函数和成本函数 激活函数(activation function):一般是非线性函数,就是每个神经元通过这个函数将原有的来自其他神经的输入做一个非线性变化, ...
- Kattis - Virtual Friends(并查集)
Virtual Friends These days, you can do all sorts of things online. For example, you can use various ...
- CSS骚操作
获取当前HTML页面根元素的字体大小 getComputedStyle(document.getElementsByTagName("html")[0],undefined).fo ...
- "啃下"插入排序
插入排序法基本原理 插入排序法较冒泡排序法和选择排序法更贴近生活,应该来说理解起来更快.如果你现在能够得到一副麻将,请把里面的“一万”到“六万”拿出来,打乱顺序,再重新排好,就像打麻将开始那样.是否需 ...
- [luogu] P4823 [TJOI2013]拯救小矮人(贪心)
P4823 [TJOI2013]拯救小矮人 题目描述 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以 ...
- javaScript将string转换成array,并将汉字按汉语拼音排序方法
亲测,代码如下: var str = '中华人民共和国民主富强': var arr = str.split("");//字符串装换数组方法一 //arr = str.replace ...
- [terry笔记]一个在线美化sql的网站
http://www.dpriver.com/pp/sqlformat.htm 甚是好用.