http://www.lydsy.com/JudgeOnline/problem.php?id=2219 弄了一个晚上加一个午休再加下午一个钟..终于ac..TAT 数论渣渣求轻虐!! 题意:求解 x^A=B(mod n) 在0~n内解的个数.其中1 <= A, B <= 10^9, 1 <= K <= 5 * 10^8  (n=2*K+1) 首先先说这一题的弱化版:bzoj1319 http://www.lydsy.com/JudgeOnline/problem.php?id=1…
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; typedef long long int64; ]; int64 A,B,K,pi,pk,ans,ti,q; int64 ksm(int64 x,int64 y){ ) ; ) return x; int64 d=k…
题目描述 在ACM_DIY群中,有一位叫做“傻崽”的同学由于在数论方面造诣很高,被称为数轮之神!对于任何数论问题,他都能瞬间秒杀!一天他在群里面问了一个神题: 对于给定的3个非负整数 A,B,K 求出满足 (1) X^A = B(mod 2*K + 1) (2) X 在范围[0, 2K] 内的X的个数!自然数论之神是可以瞬间秒杀此题的,那么你呢? 输入 第一行有一个正整数T,表示接下来的数据的组数( T <= 1000) 之后对于每组数据,给出了3个整数A,B,K (1 <= A, B <…
原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ2219.html 题目传送门 - BZOJ2219 题意 求同余方程 $x^A\equiv B \pmod{C}$ 的解的个数,其中 $C$ 为一个奇数. $1\leq A,B\leq 10^9,1\leq \lfloor C/2 \rfloor \leq 5\times 10^8$ 题解 UPD(2018-09-10): 详见数论总结. 传送门 - https://www.cnblogs.com/z…
中国剩余定理+原根+扩展欧几里得+BSGS 题解:http://blog.csdn.net/regina8023/article/details/44863519 新技能get√: LL Get_yuangen(LL p,LL phi){ ; ;i*i<=phi;i++) ) f[++c]=i,f[++c]=phi/i; ;;g++){ int j; ;j<=c;j++) ) break; ) return g; } ; } 求原根 void Split(int x){ num=; ;i*i&…
注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Robin+Pollard_Rho) 本文概要 1. 基础回顾 2. 中国剩余定理 (CRT) 及其扩展 3. 卢卡斯定理 (lucas) 及其扩展 4. 大步小步算法 (BSGS) 及其扩展 5. 原根与指标入…
题目描述 终于活成了自己讨厌的样子. 这是她们都还没长大的时候发生的故事.那个时候,栗子米也不需要为了所谓的爱情苦恼. 她们可以在夏日的午后,花大把的时间去研究生活中一些琐碎而有趣的事情,比如数论. 有一天西柚柚问了栗子米一个题,她想知道中有多少不同的数,这些不同的数字里面第k大的是多少. 输入描述: 第一行一个整数T(T≤ 10 5 ),表示数据组数.每组数据第一行两个整数,表示n,k(1≤ n≤ 10 18 ),保证k不会超过不同的数字个数. 输出描述: 对于每组数据输出,输出两个整数,表示…
看了Po神的题解一下子就懂了A了! 不过Po神的代码出锅了-solve中"d-temp"并没有什么用QwQQwQQwQ-应该把模数除以p^temp次方才行. 来自BZOJ讨论板的hack数据 hack data 1 5 3125 7812 正确输出应该是625, 但是很多人输出3125- CODE #include<bits/stdc++.h> using namespace std; typedef long long LL; const LL INF = 1e15; i…
题意:Kiki 有 X 个硬币,已知 N 组这样的信息:X%x=Ai , X/x=Mi (x未知).问满足这些条件的最小的硬币数,也就是最小的正整数 X. 解法:转化一下题意就是 拓展欧几里德求解同余方程组了.我们可以得到 N 个方程:Mi*x+Ai=X.一些解释请看下面的代码. 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<iostream> 5 using na…
题意:Elina看一本刘汝佳的书(O_O*),里面介绍了一种奇怪的方法表示一个非负整数 m .也就是有 k 对 ( ai , ri ) 可以这样表示--m%ai=ri.问 m 的最小值. 解法:拓展欧几里德求解同余方程组的最小非负整数解.(感觉挺不容易的......+_+@) 先看前2个关系式:                       m%a1=r1 和 m%a2=r2 →                                                           …