【bzoj2186】: [Sdoi2008]沙拉公主的困惑 数论-欧拉函数
考虑当 gcd(a,b)=1 则 gcd(nb+a,b)=1
所以[1,N!]与M!互质的个数就是
筛出[1,M]所有的素数p[i] 以及逆元 p[i]-1
处理一下前缀积inv[x]=
然后答案就是N!*inv[x]
/* http://www.cnblogs.com/karl07/ */
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
#define LL long long
const int N=1e7;
int R,T,n,m,cnt=;
int jc[N+],inv[N+];
bool pr[N]; void ex_gcd(int a,int b,int &x,int &y){
if (b==) {x=;y=;return;}
ex_gcd(b,a%b,y,x);
y-=x*(a/b);
} int Inv(int a){
int x,y;
ex_gcd(a,R,x,y);
return (x%R+R)%R;
} void Jc(){
jc[]=;
for (int i=;i<=N;i++){
jc[i]=1ll*jc[i-]*i%R;
}
} void Prime(){
inv[]=;
for (int i=;i<=N;i++){
inv[i]=inv[i-];
if (!pr[i]){
inv[i]=1ll*inv[i]*Inv(i)%R*(i-)%R;
if (1ll*i*i<=N) for (int j=i*i;j<=N;j+=i){
pr[j]=;
}
}
}
} int main(){
scanf("%d%d",&T,&R);
Jc();
Prime();
for (int i=;i<=T;i++){
scanf("%d%d",&n,&m);
printf("%d\n",1ll*jc[n]*inv[m]%R);
}
return ;
}
开long long跑的好慢。。11s卡过去
改成int 快了3s。。
水了一天数论感觉我数论还是这么辣鸡怎么办
【bzoj2186】: [Sdoi2008]沙拉公主的困惑 数论-欧拉函数的更多相关文章
- BZOJ_2186_[Sdoi2008]沙拉公主的困惑_欧拉函数
BZOJ_2186_[Sdoi2008]沙拉公主的困惑_欧拉函数 Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行 ...
- 【BZOJ 2186】 2186: [Sdoi2008]沙拉公主的困惑 (欧拉筛,线性求逆元)
2186: [Sdoi2008]沙拉公主的困惑 Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞 ...
- bzoj 2186 [Sdoi2008]沙拉公主的困惑(欧拉函数,逆元)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2186 [题意] 若干个询问,求1..n!中与m!互质的个数. [思路] 首先有gcd( ...
- [BZOJ 2186] [Sdoi2008] 沙拉公主的困惑 【欧拉函数】
题目链接:BZOJ - 2186 题目分析 题目要求出 [1, n!] 中有多少数与 m! 互质.(m <= n) 那么在 [1, m!] 中有 phi(m!) 个数与 m! 互质,如果一个数 ...
- 【BZOJ2186】【SDoi2008】沙拉公主的困惑 数论
Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现 ...
- [bzoj2186][Sdoi2008]沙拉公主的困惑——数论
题目大意 求 \[\sum_{i = 1}^{N!} [gcd(i, M!) = 1]\] 题解 显然,题目就是求 \[N!(1-\frac{1}{p_1})(1-\frac{1}{p_2})...\ ...
- BZOJ 2186 SDOI2008 沙拉公主的困惑 数论
题目大意:给定询问组数T和取模数P,每次询问给定两个整数n和m,求1~(n!)的数中与m!互质的数个个数模P (m<=n) 首先T<=1W,暴力肯定过不去,我们须要预处理一些东西 首先我们 ...
- [bzoj2186][Sdoi2008]沙拉公主的困惑_数论
沙拉公主的困惑 bzoj-2186 Sdoi-2008 题目大意:求N!中与M!互质的数的个数. 注释:$1\le N,M\le 10^7$. 想法:显然是求$\phi(M!)$.这东西其实只需要将数 ...
- BZOJ2186 [Sdoi2008]沙拉公主的困惑 【数论,欧拉函数,线性筛,乘法逆元】
2186: [Sdoi2008]沙拉公主的困惑 Time Limit: 10 Sec Memory Limit: 259 MB Submit: 5003 Solved: 1725 [Submit] ...
随机推荐
- MySQL insert插入
使用INSERT语句插入新数据 语法:INSERT [INTO] tbl_name [(col_name,...)] VALUES (pression,...),… INSERT [INTO ...
- 【转】LTE基本架构
这篇文章主要介绍LTE的最基础的架构,包括LTE网络的构成,每一个网络实体的作用以及LTE网络协议栈,最后还包括对一个LTE数据流的模型的说明. LTE网络参考模型 这是一张非常有名的LTE架构图,从 ...
- Cassandra 学习三 安装
1: 下载Cassandra 2 解压 3 设置环境变量 4 修改cassandra里的conf目录下配置文件 配置文件地址是 D:\cassandra\apache ...
- Git 之Windows环境下学习系列
Git .SVN .TFS 相同点 不同点 Git 版本控制 优点: 分布式版本控制.无需联网就能版本提交 开源 缺点 入门学习难度高 SVN 优点: 集中式版本控制. 个人开源 缺点 ...
- mysql添加用户
增加新用户: 格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码" 例1.增加一个用户test1密码为abc,让他可以在任 ...
- hadoop 更改 tmp目录
配置hadoop临时目录--------------------- 1.配置[core-site.xml]文件 <configuration> <property> <n ...
- css的relative与absolute(一)
relative与absolute是position的两个值,本文对这两个值得关系进行了一个小实验 实验一: 首先定义了两个div元素,代码如下所示: <!doctype html> &l ...
- fluent仿真数值错误
- OpenCV笔记 1
Structure Contains Represents CvPoint int x, y Point in image CvPoint2D32f float x, y Points in ...
- import json