[SDOI2008]沙拉公主的题目描述

(^ w ^)

大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票。房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的数量。现在,请你帮助沙拉公主解决这个问题,由于可能张数非常大,你只需计算出对R取模后的答案即可。R是一个质数。
输入输出格式
输入格式:

第一行为两个整数T,R。R<=10^9+10,T<=10000,表示该组中测试数据数目,R为模 后面T行,每行一对整数N,M,见题目描述 m<=n

输出格式:

共T行,对于每一对N,M,输出1至N!中与M!素质的数的数量对R取模后的值困惑
输入输出样例
输入样例#1:

1 11
4 2

输出样例#1:

1

数据范围:
对于100%的数据,1 < = N , M < = 10000000
由于我们可以把n!均分为 n!m!\ \frac{n!}{m!} m!n!​ 段,每段与n!互质的个数为 φ(m!)\ \varphi(m!) φ(m!) 个。
所以答案为:

ans=n!m!φ(m!)ans = \frac{n!}{m!} \varphi(m!) ans=m!n!​φ(m!)

化简得

ans=n!m!m!∏p∣m(p−1)p=n!∏p∣m(p−1)∏p∣mpans= \frac{n!}{m!} m! \prod_{p|m} \frac{(p-1)}{p}= n! \frac{\prod_{p|m}(p-1)}{\prod_{p|m}p} ans=m!n!​m!p∣m∏​p(p−1)​=n!∏p∣m​p∏p∣m​(p−1)​

所以只需要求得n!的逆元, ∏p∣m(p−1)\ \prod_{p|m}(p-1) ∏p∣m​(p−1)的逆元和∏p∣mp\ \prod_{p|m}p ∏p∣m​p的逆元即可,注意的是,n≥R\ n \ge R n≥R 时n!应消去一个R,m≥R\ m \ge R m≥R时∏p∣mp\ \prod_{p|m}p ∏p∣m​p应消去一个R。
AC代码:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<cmath>
#include<cstdlib>
#include<iostream>
using namespace std;
int n,m,t,r;
int tot=0,p[1000010],ans[10000010],is[10000010],inv[10000010];
bool f[10000010];
void work()
{is[0]=1;is[1]=1;inv[0]=1;inv[1]=1;ans[0]=1;ans[1]=1;int i=2,j=1;while(i<=10000000){is[i]=1LL*is[i-1]*i%r;inv[i]=1LL*(r-r/i)*inv[r%i]%r;if(!f[i]) p[++tot]=i;j=1;while((j<=tot)&&(i*p[j]<=10000000)){f[i*p[j]]=1;if(i%p[j]==0) break;++j;}++i;}i=2;while(i<=10000000){ans[i]=ans[i-1];if(!f[i]) ans[i]=((((1LL*ans[i])*(i-1))%r)*inv[i])%r;++i;}
}
int main()
{scanf("%d%d",&t,&r);work();while(t--){scanf("%d%d",&n,&m);printf("%lld\n",((1LL*is[n])*ans[m])%r);}return 0;
}/*
1996年:东方灵异传(TOH1)
1997年:东方封魔录(TOH2)
1997年:东方梦时空(TOH3)
1998年:东方幻想乡(TOH4)
1998年:东方怪绮谈(TOH5)
2002年:东方红魔乡(TOH6)
2003年:东方妖妖梦(TOH7)
2004年:东方萃梦想(TOH7.5)
2004年:东方永夜抄(TOH8)
2005年:东方花映冢(TOH9)
2005年:东方文花帖(TOH9.5)
2007年:东方风神录(TOH10)
2008年:东方绯想天(TOH10.5)
2008年:东方地灵殿(TOH11)
2009年:东方星莲船(TOH12)
2009年:东方非想天则(TOH12.3)
2010年:东方文花帖DS(TOH12.5)
2010年:东方三月精(TOH12.8)
2011年:东方神灵庙(TOH13)
2013年:东方心绮楼(TOH13.5)
2013年:东方辉针城(TOH14)
2014年:弹幕天邪鬼(TOH14.3)
2014年:东方深秘录(TOH14.5)
2015年:东方绀珠传(TOH15)
2017年:东方凭依华(TOH15.5)
2017年:东方天空璋(TOH16)
*/
//写上这些RP++

总结

不错的综合题,考了很多数论的相关知识,需要熟练运用很多知识解决。
我写这道题的时候还不会求逆元。
不过有足够的前置知识后这道题就不是很难了。

(数论)[SDOI2008]沙拉公主的题目描述相关推荐

  1. [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉

    本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉 题目大意 给定n,m,求在1到n!内与m!互质的 ...

  2. φ(1)=1 [Sdoi2008]沙拉公主的困惑

    问题 F: [Sdoi2008]沙拉公主的困惑 时间限制: 1 Sec 内存限制: 259 MB 题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘 ...

  3. [Sdoi2008]沙拉公主的困惑

    Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现 ...

  4. 【bzoj2186】[Sdoi2008]沙拉公主的困惑 欧拉函数

    题目描述 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现在所有真钞票的 ...

  5. bzoj 2186: [Sdoi2008]沙拉公主的困惑

    Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 2463  Solved: 820 [Submit][Status][Discuss] Descrip ...

  6. bzoj2186【SDOI2008】沙拉公主的困惑

    2186: [Sdoi2008]沙拉公主的困惑 Time Limit: 10 Sec   Memory Limit: 259 MB Submit: 2363   Solved: 779 [ Submi ...

  7. [bzoj2186]沙拉公主的困惑

    2186 沙拉公主的困惑 Time Limit: 10 Sec   Memory Limit: 259 MB Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有 ...

  8. 沙拉公主的困惑 cash

    一.沙拉公主的困惑 (cash.pas/c/cpp, 限时3 秒,内存256M) [题目描述] 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编 号范围为1 到N 的阶乘,但是 ...

  9. [欧拉函数] Bzoj P2186 沙拉公主的困惑

    Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现 ...

最新文章

  1. python Django 管理站点1.3
  2. linux进程通信:pipe实现进程同步
  3. C# 学习笔记(7) 进程
  4. tftp环境搭建笔记
  5. SAP Fiori Launchpad shell.handleGoHome() - home按钮的实现
  6. 【Git】Git-常用命令备忘录(二)
  7. 【APICloud系列|28】 UIChatBox 模块(聊天输入框)的实现
  8. java不规则数组杨辉,JAVASE课程 第一章 第三讲程序控制与数组
  9. Windows下载安装kafka
  10. thinkpad指纹识别linux,在Ubuntu下启用ThinkPad X250的指纹识别
  11. 蒙古文输入法linux版,蒙古文输入法下载 德力海蒙古文输入法 V2.1.3 官方安装版(附使用手册) 下载-脚本之家...
  12. SELECT TOP 1 * FROM是什么意思
  13. 一起聊一聊数字化,信息化,数据化,数字化转型(建议收藏)
  14. h5 视频播放功能实现
  15. Linux 版本查询常用命令
  16. python使用opencv实现人脸检测
  17. 考研数据结构之循环队列
  18. 蓝屏终止代码:WHEA_UNCORRECTABLE_ERROR
  19. 随身WiFi加装风扇+天线、插卡可用安卓系统高通410
  20. 6-2 成绩单求平均成绩 (10分)

热门文章

  1. python自动生成ppt报告_把时间还给洞察,且看PPT调研报告自动生成攻略
  2. 热评云厂商:品高云4.62亿元,发力行业云,掘金实属不易
  3. jsp怎么设置页面背景
  4. 夜明け前より瑠璃色な 攻略
  5. 阿里云CDN直播架构与双11晚会直播实战 1
  6. 华硕x580nv拆机_看懂一篇拆机贴 拆遍天下机 华硕A45VM拆机清灰换硅脂 怒降25度!...
  7. 算法研究之二叉树小球下落
  8. 如何将电脑的无线网通过有线分享给其他设备
  9. 论文阅读Check it again:Progressive Visual Question Answering via Visual Entailment
  10. uniapp开发h5微信授权登录(详细教程)