数学(逆元):BZOJ 2186: [Sdoi2008]沙拉公主的困惑
2186: [Sdoi2008]沙拉公主的困惑
Description
大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票。房地产第一 大户沙拉公主决定预测一下大富翁国现在所有真钞票的数量。现在,请你帮助沙拉公主解决这个问题,由于可能张数非常大,你只需计算出对R取模后的答案即可。 R是一个质数。
Input
第一行为两个整数T,R。R<=10^9+10,T<=10000,表示该组中测试数据数目,R为模后面T行,每行一对整数N,M,见题目描述 m<=n
Output
共T行,对于每一对N,M,输出1至N!中与M!素质的数的数量对R取模后的值
Sample Input
4 2
Sample Output
1
数据范围:
对于100%的数据,1 < = N , M < = 10000000
#include <iostream>
#include <cstring>
#include <cstdio>
#include <bitset>
using namespace std;
const int N=;
int cnt,prime[N/];
int a1[N+],a2[N+],inv[N+];
bool check[N+];
void Shaker(){
for(int i=;i<=N;i++){
if(!check[i])
prime[++cnt]=i;
for(int j=;j<=cnt;j++){
if(i*prime[j]>N)break;
check[i*prime[j]]=true;
if(i%prime[j]==)break;
}
}
}
int main(){
int T,R,n,m;
scanf("%d%d",&T,&R);
Shaker();
inv[]=;
for(int i=;i<=N&&i<R;i++)
inv[i]=1ll*(R-R/i)*inv[R%i]%R;
a1[]=;
for(int i=;i<=N;i++)
a1[i]=1ll*a1[i-]*i%R;
a2[]=;
for(int i=;i<=N;i++)
if(check[i])a2[i]=a2[i-];
else a2[i]=1ll*a2[i-]*(i-)%R*inv[i%R]%R;
while(T--){
scanf("%d%d",&n,&m);
printf("%d\n",1ll*a1[n]*a2[m]%R);
}
return ;
}
数学(逆元):BZOJ 2186: [Sdoi2008]沙拉公主的困惑的更多相关文章
- Bzoj 2186: [Sdoi2008]沙拉公主的困惑 乘法逆元,线性筛,欧拉函数,数论
2186: [Sdoi2008]沙拉公主的困惑 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 2560 Solved: 857[Submit][St ...
- [BZOJ 2186] [Sdoi2008] 沙拉公主的困惑 【欧拉函数】
题目链接:BZOJ - 2186 题目分析 题目要求出 [1, n!] 中有多少数与 m! 互质.(m <= n) 那么在 [1, m!] 中有 phi(m!) 个数与 m! 互质,如果一个数 ...
- bzoj 2186 [Sdoi2008]沙拉公主的困惑(欧拉函数,逆元)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2186 [题意] 若干个询问,求1..n!中与m!互质的个数. [思路] 首先有gcd( ...
- BZOJ 2186 [Sdoi2008]沙拉公主的困惑 【逆元】
题意:求中互质的数的个数,其中. 分析:因为,所以,我们很容易知道如下结论 对于两个正整数和,如果是的倍数,那么中与互素的数的个数为 本结论是很好证明的,因为中与互素的个数为,又知道, ...
- [BZOJ 2186][Sdoi2008]沙拉公主的困惑(欧拉函数)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2186 分析: 就是要求1~n!中与m!互质的数的个数 首先m!以内的就是φ(m!) 关 ...
- bzoj 2186: [Sdoi2008]沙拉公主的困惑
#include<cstdio> #include<iostream> #define ll long long #define N 10000009 using namesp ...
- BZOJ 2186 SDOI2008 沙拉公主的困惑 数论
题目大意:给定询问组数T和取模数P,每次询问给定两个整数n和m,求1~(n!)的数中与m!互质的数个个数模P (m<=n) 首先T<=1W,暴力肯定过不去,我们须要预处理一些东西 首先我们 ...
- bzoj 2186 [Sdoi2008]沙拉公主的困惑 欧拉函数
n>=m,所以就变成了求 ϕ(m!)∗n!/m! 而 ϕ(m!)=m!∗(p−1)/p...... p为m!的素因子,即为m内的所有素数,问题就转化为了求 n!∗(p−1)/p...... 只需 ...
- 【BZOJ 2186】 2186: [Sdoi2008]沙拉公主的困惑 (欧拉筛,线性求逆元)
2186: [Sdoi2008]沙拉公主的困惑 Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞 ...
随机推荐
- mac skim 修改背景色
defaults write -app skim SKPageBackgroundColor -array 0.78 0.93 0.80 1
- oracle实现自动记录存储过程、自定义函数执行错误
CREATE OR REPLACE Package Pkg_Stm_Prgerrlog As --Purpose: 实现记录系统错误异常信息,便于问题跟踪 Procedure Sp_Stm_Prger ...
- List指定字段赋特定值(非循环) asp.net
List<Cart> cartd=cartd.Where(p => (p.Id= "123").Length > -1).ToList(); 把Id的值都赋 ...
- EF结合SqlBulkCopy在项目中的使用
这是我第一次写博客,由于水平有限,写不出什么好东西,还望见谅. 我现在参与的这个项目采用的是EF框架,方便了数据库的访问.但在实际中,发现项目中导入市县Excel数据耗时太长,于是趁这段时间专门研究了 ...
- 美好头标ToolBar
ActionBar我相信是每一位合格的程序员都用过的组件,也是每一个程序员都会抱怨的组件,因为他不能实现复杂的自定义.为此Google推出了比ActionBar更为美好的组件ToolBar. 本文重点 ...
- sql 作业+游标 自动备份数据库
前言 昨天有个同事在客户的服务器上面弄数据库,不小心执行了一条 sql 语句 TRUNCATE TABLE xxx 碉堡了吧,数据全没了 - - ,然后就是在网上拼命的搜索关于数据恢复的软件,搞了一 ...
- oracle解析xml(增加对9i版本的支持)
--方法1 SELECT * FROM XMLTABLE('$B/DEAL_BASIC/USER_DEAL_INFO' PASSING XMLTYPE('<?xml version= ...
- JavaScript - 测试 jQuery
测试 JavaScript 框架库 - jQuery 引用 jQuery 如需测试 JavaScript 库,您需要在网页中引用它. 为了引用某个库,请使用 <script> 标签,其 s ...
- C# XML文件操作类XmlHelper
类的完整代码: using System;using System.Collections;using System.Xml; namespace Keleyi.Com.XmlDAL{public c ...
- SGU 176.Flow construction (有上下界的最大流)
时间限制:0.5s 空间限制:4M 题意: 有一个由管道组成的网络,有n个节点(n不大于100),1号节点可以制造原料,最后汇集到n号节点.原料通过管道运输.其中有一些节点有管道连接,这些管道都有着最 ...