Link

题意

给$n, m, p, x$,求有多少个$n(1\leq n \leq x)$使得$n·a^{n}=b(\textrm{mod}\;p)$成立

思路

考虑一下左边的循环节长度,由于$n%p$的循环节长度为$p$,$a^{n}%p$的循环节长度为$p-1$(根据费马小定理$a^{0}=a^{p-1}=1(\textrm{mod}\;p)$),所以(大胆猜测)左边的循环节长度就是$p*(p-1)$。接下来,设$n=k*(p-1)+i$,有原式:

$n·a^{n}=b(\textrm{mod}\;p)$

$n=b*a^{-n}(\textrm{mod}\;p)$

$k*(p-1)+i=b*a^{-k*(p-1)-i}(\textrm{mod}\;p)$

$-k+i=b*a^{-i}(\textrm{mod}\;p)$

$k=i-b*a^{-i}(\textrm{mod}\;p)$

由于$a^{i}(\textrm{mod}\;p)$的值至多$p-1$个,所以枚举$i$即可算出$k$,即可算出$n=k*(p-1)+i$此为当前$i$下$n$的最小值,然后算一下加了循环节长度之后有多少满足的$n$即可。

Code

#include <bits/stdc++.h>
#define DBG(x) cerr << #x << " = " << x << endl using namespace std;
typedef long long ll; const int N = 1e6 + 5; ll a, b, p, x, ans, pw[N]; ll fpow(ll a, ll b, ll mod) {
ll res = 1; a %= mod;
for(; b; b >>= 1, a = a * a % mod) if(b & 1) res = res * a % mod;
return res;
} int main() {
scanf("%lld%lld%lld%lld", &a, &b, &p, &x);
ll G = p * (p - 1);
for(int i = 1; i <= p - 1; i++) {
pw[i] = i == 1 ? a : pw[i - 1] * a % p;
ll k = ((i - b * fpow(pw[i], p - 2, p) % p) % p + p) % p;
if(x >= k * (p - 1) + i) ans += (x - k * (p - 1) - i) / G + 1;
}
printf("%lld\n", ans);
}

Codeforces 919E Congruence Equation(循环节+数论)的更多相关文章

  1. Codeforces.919E.Congruence Equation(同余 费马小定理)

    题目链接 \(Description\) 给定a,b,x,p,求[1,x]中满足n*a^n ≡b (mod p) 的n的个数.\(1<=a,b<p\), \(p<=1e6+3\), ...

  2. Codeforces 919E Congruence Equation ( 数论 && 费马小定理 )

    题意 : 给出数 x (1 ≤ x ≤ 10^12 ),要求求出所有满足 1 ≤ n ≤ x 的 n 有多少个是满足 n*a^n  = b ( mod p ) 分析 : 首先 x 的范围太大了,所以使 ...

  3. [Codeforces 919E]Congruence Equation

    Description 题库链接 求满足 \[n\cdot a^n\equiv b \pmod{p}\] 的 \(n\) 的个数, \(1\leq n\leq x\) , \(a,b,p,x\) 均已 ...

  4. Codeforces Round #460 (Div. 2) E. Congruence Equation (CRT+数论)

    题目链接: http://codeforces.com/problemset/problem/919/E 题意: 让你求满足 \(na^n\equiv b \pmod p\) 的 \(n\) 的个数. ...

  5. 【Codeforces】Round #460 E - Congruence Equation 中国剩余定理+数论

    题意 求满足$na^n\equiv b \pmod p$的$n$的个数 因为$n \mod p ​$循环节为$p​$,$a^n\mod p​$循环节为$p-1​$,所以$na^n \mod p​$循环 ...

  6. CodeForces 1117C Magic Ship (循环节+二分答案)

    <题目链接> 题目大意: 给定起点和终点,某艘船想从起点走到终点,但是海面上会周期性的刮风,船在任何时候都能够向四个方向走,或者选择不走,船的真正行走路线是船的行走和风的走向叠加的,求船从 ...

  7. Codeforces Round #450 (Div. 2) B. Position in Fraction【数论/循环节/给定分子m 分母n和一个数c,找出c在m/n的循环节第几个位置出现,没出现过输出-1】

    B. Position in Fraction time limit per test 1 second memory limit per test 256 megabytes input stand ...

  8. Codeforces 919 E Congruence Equation

    题目描述 Given an integer xx . Your task is to find out how many positive integers nn ( 1<=n<=x1&l ...

  9. cf 460 E. Congruence Equation 数学题

    cf 460 E. Congruence Equation 数学题 题意: 给出一个x 计算<=x的满足下列的条件正整数n的个数 \(p是素数,2 ≤ p ≤ 10^{6} + 3, 1 ≤ a ...

  10. HDU 5895 Mathematician QSC(矩阵乘法+循环节降幂+除法取模小技巧+快速幂)

    传送门:HDU 5895 Mathematician QSC 这是一篇很好的题解,我想讲的他基本都讲了http://blog.csdn.net/queuelovestack/article/detai ...

随机推荐

  1. [编程基础] Python命令行解析库argparse学习笔记

    Python argparse教程展示了如何使用argparse模块解析Python中的命令行参数. 文章目录 1 使用说明 1.1 Python argparse可选参数 1.2 Python ar ...

  2. Spring MVC复习 —— 搭建Spring MVC项目

    Spring MVC复习 -- 搭建Spring MVC项目   摘要:这篇笔记是关于Spring MVC的复习,内容是如何搭建Spring MVC项目.   让我们快速的搭建一个Spring MVC ...

  3. 【力扣】787. K 站中转内最便宜的航班加权——有向图最短路径

    前言 我感觉这题比较有代表性,所以记录一下,这题是加权有向图中求最短路径的问题. 题目 787. K 站中转内最便宜的航班 动态规划 假设有一条路径是[src, i, ..., j, dst],解法一 ...

  4. 通过Sqoop来传输mysql/oracle/vertica数据至Hive

    1.环境: CDH SQOOP2 2.操作步骤 1.准备表与主键 表名:test.test_log 主键:sys_log_id 建表语句 CREATE TABLE hbase_test_test_lo ...

  5. XCTF-web新手区

    前言 刷题平台:攻防世界 web简介 WEB是CTF竞赛的主要题型,题目涉及到许多常见的WEB漏洞,诸如XSS.文件包含.代码执行.上传漏洞.SQL注入.还有一些简单的关于网络基础知识的考察,例如返回 ...

  6. 2023计算机领域顶会(A类)以及ACL 2023自然语言处理(NLP)研究子方向领域汇总

    2023年的计算语言学协会年会(ACL 2023)共包含26个领域,代表着当前前计算语言学和自然语言处理研究的不同方面.每个领域都有一组相关联的关键字来描述其潜在的子领域, 这些子领域并非排他性的,它 ...

  7. KStudio-Java程序连接KingbaseES数据库异常

    错误信息: --KStudio客户端工具错误信息 The conncetion attempt failed.Reason:connect time out --Java应用程序控制台日志 Cause ...

  8. hashlib加密、subprocess、logging日志模块

    1.hashlib加密模块 1.加密:将明文数据处理成密文数据,让人无法看懂 2.为什么加密:保证数据的安全 3.如何判断数据是否加密:如果是一长串没有规律的字符串(数字.字母.符号)那么数据被加密 ...

  9. 多个仓库源配置及repositories和mirrors的配置

    在实际项目中会存在多个仓库,包括我们自建的Nexus私有仓库和阿里仓,这里就需要设置多仓的顺序,防止jar包不在其中一个仓库时会自动从另外一个仓库中拉取. Maven的Setting配置中有mirro ...

  10. Python 发展趋势:与 Rust 深度融合、更易于编写 Web 应用

    大家好,我是猫哥,好久不见!2022 年末的时候,我不可避免地阳了,借着身体不舒服就停更了,接踵而至的是元旦和春节假期,又给自己放了假,连年终总结也鸽了,一懈怠就到了 2 月中旬-- 现在是我家娃出生 ...