Codeforces Round #460 (Div. 2): E. Congruence Equation(枚举)
题意:给出a, b, p, x,求有多少个n满足①n*a^n%p==b;②n<=x
思路:先要知道一个很简单的性质:a^n%p的值一定存在循环节(n=0就进入循环),且周期T一定是p-1的约数
然后就好做了,①暴力枚举a^i%p(i从0到p-1)算出每个余数ki,可以得到式子c*ki%p==b
②对于每个ki,用逆元求出c,c = b*(ki对p的逆元)
③如果存在一个n满足n*a^n%p==b,那么很显然n%(p-1)==i 并且n%p==c,最小的n可以用CRT求出
④然后就是一个简单的除法了,对于所有<=x的n的倍数都满足条件
复杂度O(plogp)
#include<stdio.h>
#define LL long long
LL k[1005555];
LL Pow(LL a, LL b, LL p)
{LL ans = 1;while(b){if(b%2)ans = ans*a%p;a = a*a%p;b /= 2;}return ans;
}
int main(void)
{LL a, b, p, x, i, xh, last, c, n, ans;scanf("%lld%lld%lld%lld", &a, &b, &p, &x);ans = 0, xh = p-1;for(i=0;i<=p-2;i++){k[i] = Pow(a, i, p);c = Pow(k[i], p-2, p)*b%p;n = ((p-1)*(p-1)*c+p*i)%(p*(p-1));ans += (x-n+p*(p-1))/(p*(p-1));}printf("%lld\n", ans);return 0;
}
Codeforces Round #460 (Div. 2): E. Congruence Equation(枚举)相关推荐
- [Codeforces]Codeforces Round #460 (Div. 2)
Supermarket 找最便宜的就行 Solution Perfect Number 暴力做 Solution Seat Arrangement 注意当k=1时,横着和竖着是同一种方案 Soluti ...
- Codeforces Round #144 (Div. 2) B. Non-square Equation 数学解一元二次方程+分析
http://codeforces.com/problemset/problem/233/B 题意: x2 + s(x)·x - n = 0, 给出n的值,求x的值,这里s(x)表示x各位数字的和. ...
- Codeforces Round #460 (Div. 2)
A 签到 B 题意 定义:一个数(没有前缀0)的各个位数之和为10位"perfec"数,问第k个"perfect"数位多少(1<=k<=1e5) 分 ...
- Codeforces Round #460 (Div. 2): D. Substring(有向图)
题意:给你一个有向图,每个节点都有一个字母,一条路径(可以重复经过点或边)的值为出现次数最多的字母出现次数,求出路径的最大值(如果无穷大输出-1) 思路:有环就是-1,有向图判环可以用DPS,也可以B ...
- CF1734E Codeforces Round #822 (Div. 2) Rectangular Congruence
cf传送门 题意 构造一个矩阵 A A A,满足 其中所有 A [ i ] [ i ] A[i][i] A[i][i]已经给定 思路 考虑没有给定对角线的值,构造矩阵 A [ i ] [ j ] = ...
- Codeforces Round #636 (Div. 3) D.Constant Palindrome Sum
Codeforces Round #636 (Div. 3) D.Constant Palindrome Sum 题目链接 You are given an array a consisting of ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #563 (Div. 2)/CF1174
Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...
- 构造 Codeforces Round #302 (Div. 2) B Sea and Islands
题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...
最新文章
- jQurey 的选择器
- python获取命令行参数的方法
- Forth Week :快速上手一门编程语言
- 一个老外如何丑化中国程序员
- 机器学习实战(笔记)------------KNN算法
- 【数据结构与算法】二项队列与二叉堆的比较
- 我们异口同声说的shooow
- Magento教程 19:客户评论的审核与发布! (Pending Reviews)
- 【java】详解java多线程
- 注册规划师 计算机科学与技术,关于公布2018年度注册城乡规划师考试合格人员名单的通知...
- keli调试变量出现负值
- SpringMVC原理
- 数学-线性代数:线性代数
- ThreeJS 实现等值线效果
- QUIC成为了HTTP/3的标准传输协议!
- pcb焊接的一些技巧
- 数字转中文大写= 1234= 一千二百三十四
- pc端高德地图获取当前位置
- Centos 安装OpenStack
- 研究生语音识别课程作业记录(一) 非特定人孤立词识别
热门文章
- python能做什么工作-学完Python我们可以做什么工作?
- 单片机如何在一数据包前加标识呢_单挑Google面试官,一上来就问我Chrome底层原理和HTTP协议(万字长文)...
- MongoDB创建集合及创建文档(非常详细哦~)
- H5搜索页调起软键盘
- 【堆】Leetcode692:前k个高频单词
- 【计算机网络笔记】计算机网络定义分类
- ★Python爬虫 ※ 入门详解
- 二叉树求到某一个节点路径
- python访问注册表_Python 操作注册表
- 搭建 Harbor 1.10.6 高可用集群