CERC2017 F: Faulty Factorial 简单数论题

#include <iostream>
using namespace std;
#define ll long long
const int N = ;
ll n,p,r;
ll poww(ll a,ll b){
ll ans =1ll;
while(b){
if(b&) ans =ans*a%p;
b>>=;
a=a*a%p;
}
return ans%p;
}
int main()
{
//每次都要注意-1 -1的情况
scanf("%lld%lld%lld",&n,&p,&r);
if(n>=*p){
if(r==){
printf("%lld 1\n",p+);
}
else{
printf("-1 -1\n");
}
}
else if(n>=p){
if(r==){
int flag =;
for(ll i=;i<=n;i++){
if(i!=p)//起初if的{}写错了
{
printf("%lld 1\n",i);
flag =;
break;
}
}
if(!flag)printf("-1 -1\n"); //n=p=2
}
else{
ll ans=1ll;
for(ll i=;i<=n;i++) {
if(i!=p) ans =ans*i%p;
}
int flag =;
for(ll i=;i<p;i++){
if(ans*i%p==r) {
printf("%lld %lld\n",p,i);
flag =;
break;
}
}
if(flag==) printf("-1 -1\n");
}
}
else{
ll ans =1ll;
for(ll i=;i<=n;i++) ans =ans*i%p;
int flag =;
ans = poww(ans,p-);//放到里面会超时
for(ll i=;i<=n;i++){
ll x= r*i%p*ans%p;
// ans/i*x%p==r
// x=r*i%p/ans%p;
if(x>=&&x<i){
printf("%lld %lld\n",i,x);
flag =;
break;
}
}
if(!flag) printf("-1 -1\n");
}
return ; }
CERC2017 F: Faulty Factorial 简单数论题的更多相关文章
- 【正睿多校联盟Day4 T4 简单的数论题】
题目名有毒 由于并没有系统地开始学习数论,所以数论题基本靠暴力. 然鹅本题的题解相当简单: emmm....我当你没说 一个简单易懂的方法是这样的: 1. 欧拉定理的推论 若正整数a,n互质,则对于任 ...
- BZOJ 3209: 花神的数论题 [数位DP]
3209: 花神的数论题 题意:求\(1到n\le 10^{15}\)二进制1的个数的乘积,取模1e7+7 二进制最多50位,我们统计每种1的个数的数的个数,快速幂再乘起来就行了 裸数位DP..\(f ...
- FJUT-这还是一道数论题
这还是一道数论题 TimeLimit:4000MS MemoryLimit:128MB 64-bit integer IO format:%lld Special Judge Problem D ...
- Visual F# Power Tools 简单介绍
Visual F# Power Tools 简单介绍 Auto-generating XmlDoc 当在函数定义的前面输入 ///< 以后.会自己主动生成 XML 文档.并会自己主动提取函数中的 ...
- 【LG4317】花神的数论题
[LG4317]花神的数论题 题面 洛谷 题解 设\(f_{i,up,tmp,d}\)表示当前在第\(i\)位,是否卡上界,有\(tmp\)个一,目标是几个一的方案数 最后将所有\(d\)固定,套数位 ...
- bzoj3209:3209: 花神的数论题
觉得还是数位dp的那种解题形式但是没有认真的想,一下子就看题解.其实还是设置状态转移.一定要多思考啊f[i][j]=f[i-1][j]+g[i-1][j] g[i][j]=f[i-1][j-1]+g[ ...
- [Bzoj3209]花神的数论题(数位dp)
3209: 花神的数论题 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2633 Solved: 1182[Submit][Status][Disc ...
- BZOJ_3209_花神的数论题_组合数+数位DP
BZOJ_3209_花神的数论题_组合数+数位DP Description 背景 众所周知,花神多年来凭借无边的神力狂虐各大 OJ.OI.CF.TC …… 当然也包括 CH 啦. 描述 话说花神这天又 ...
- 【数位DP】【P4317】花神的数论题
[数位DP][P4317]花神的数论题 Description 给定 \(n\),求 \(n\) 以内所有正整数二进制下 \(1\) 的个数的乘积,答案对 \(10^7 + 7\) 取模 Limita ...
随机推荐
- 2602 最短路径问题Dihstra算法
题目描述 Description 平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间.其中的一些点之间有连线.若有连线,则表示可从一个点到达另一个点,即两点间有通路,通 ...
- GDB多线程调试分析
0x00: 在Linux系统上Gdb提供了一组多线程调试命令,如表所示: 多线程调试的主要任务是准确及时地捕捉被调试程序线程状态的变化的事件,并且GDB针对根据捕捉到的事件做出相应的操作,其实最终的结 ...
- appium(四)交互分析
转自:http://blog.csdn.net/Yejianyun1/article/details/56017360 一.简介 英文官网:appium官网 Appium跨平台.开源的自动化测试工具, ...
- Linux系统如何设置开机程序自启动
在Linux系统如何让程序开机时自动启动 核心提示:系统的服务在开机时一般都可以自动启动,那在linux系统下如果想要程序在开机时自动启动怎么办?我们知道在 windows系统“开始”--& ...
- ASP.NET 上传图片到FTP
目录: 2.代码 3.参考资料 4.IIS环境FTP配置 5.使用虚拟目录注意Server.MapPath() 1. 项目介绍 建立FTP文件服务器与应用程序分开. 下面方法中的参数为Stream因为 ...
- Typora使用
Typora使用 1.介绍 typora是一款不错的软件. 1.1 基本使用 html js css python java vb 1.2 无序列表 a b c d e f 1.3 java代码 pu ...
- Ubuntu 系统安装
1.首先下载一个Ubuntu系统文件,以.ios后缀结尾的系统镜像文件压缩包. 2,下载一个ultraiso软件,用于制作u盘启动盘 3,将电脑重启,进入BOIS界面,调整系统顺序, 将启动盘系统设置 ...
- 将Apache2.4手动安装成Windows的服务
将Apache2.4手动安装成Windows的服务 可以选择在安装Apache时自动将其安装为一个服务.如果选择"for all users",那么Apache将会被安装为服务. ...
- IOS 单例模式(非ARC)
singleton_h :连接字符串和参数 // ## : 连接字符串和参数 #define singleton_h(name) + (instancetype)shared##name; #defi ...
- 2017.10.27 C语言精品集
第一章 程序设计和C语言 1.1 什么是计算机程序? @ ······ 所谓程序,就是一组计算机能识别和执行的指令.每一条指令使计算机执行特定的操作. 计算机的一切操作都是由程序控制的.所以计算机的本 ...