【[TJOI2007]可爱的质数】】的更多相关文章

题目描述 给定一个质数P(2<=P<2312^{31}231),以及一个整数B(2<=B<P),一个整数N(2<=N<P). 现在要求你计算一个最小的L,满足BL≡N(modP). 题目分析 BSGS裸题. 偷一张网上看到的好图来说明一下BSGS算法(转侵删) Code #include<iostream> #include<cstdio> #include<cmath> #include<map> using names…
题意 给定 \(y,z,p\),求最小的正整数 \(x\) 满足 \(y^x\equiv z\bmod p\),保证 \(p\) 是质数. \(\texttt{Data Range:}2\leq y,z<p<^{31}\) 题解 BSGS 裸题. 这题其实我一年前就做过了,但是现在发现差点背不得 BSGS 了,所以重新写了一遍. 背 BSGS 其实只要掌握原理就好了. 首先考虑分块.令 \(x=am-b,m=\sqrt{p}\),那么就有 \[y^{am}\equiv zy^b\pmod p…
题目 用一道板子题来复习一下\(bsgs\) \(bsgs\)用于求解形如 \[a^x\equiv b(mod\ p)\] 这样的高次不定方程 由于费马小定理的存在,我们可是直接暴力扫一遍\(p\),由于\(p-1\)次之后肯定会有循环节出现,所以\(O(p)\)时间内就可以出解 \(bsgs\)本质上就是一种分块了 设\(m=ceil(\sqrt{p})\),我们设\(x=i\times m-j\) 显然我们只需要\(i,j\in[0,m]\)就可以令\(x\)表示\([0,p]\)之间的所有…
题目链接 \(BSGS\)模板题..不会点这里 #include <cstdio> #include <cmath> #include <map> using namespace std; typedef long long ll; int a, b, p; int fast_pow(int n, int k){ //n^k%p int ans = 1; while(k){ if(k & 1) ans = (ll)ans * n % p; n = (ll)n *…
题意 求最小的\(x\)满足\(a^x \equiv b\mod p\) 想法 这个是标准的板子题,\(BSGS\)算法可以用来解决\(a^x \equiv b\mod p\) 和 \(x^a \equiv b\mod p\)问题 本题是前者 我们考虑这样 \(a^{A * \sqrt p - B} \equiv b\mod p\) 有 \(a^{A * \sqrt p} \equiv ba^{B}\mod p\) 其中(\(A,B < \sqrt p\)) 我们先枚举\(B\)统计出\(ba^…
蒟蒻哪里有什么总结,只能点击%YL% 还有这位ZigZagK大佬的blog \(\mbox{BSGS}\) 模板题:洛谷P3846 [TJOI2007]可爱的质数 给定\(a,b\)和模数\(\mbox{YL}\),求\(a^x\equiv b(\bmod\mbox{YL})\)中\(x\)的最小非负整数解.保证\(\gcd(a,\mbox{YL})=1\). 设\(k=\lceil\sqrt{\mbox{YL}}\rceil\),令\(x=ky-c\)(\(y\in[1,k],c\in[0,k…
NOIP-NOI-ZJOI基础模板总结 目录 C++语言和STL库操作 重载运算符操作 /* 重载运算符 格式 如重载小于号 这里是以x递减为第一关键字比较,y递减为第二关键字比较 */ bool operator < (node a,node b){ if (a.x!=a.y) return a.x<b.x; else return a.y<b.y; } 算法类: sort /* sort的用法 sort(数组首位地址 ,数组末尾地址 , 比较函数) 比较函数同时可替换为重载小于号运算…
BSGS (感觉这东西还是要写一下) BSGS主要用于求解形如\(x^k=y\pmod p\)(注意这里p与x互质)这样的方程的最小正整数解的问题 设\(m=\lceil\sqrt p\rceil,k=am-b,a\in[1,m],b\in[0,m)\) 那么上面的方程可以变形成\(x^{am}=yx^b\pmod p\) 枚举\(b\),计算出右边的值存到\(map\)中,枚举\(a\)查表即可 Q:可以枚举左边存表,右边查嘛? A:可以,但是左边查到表可以直接输出... 顺便一说,map里要…
\(\\\) BSGS 用于求解关于 \(x\) 的方程: \[ a^x\equiv b\pmod p\ ,\ (p,a)=1 \] 一般求解的是模意义下的指数,也就是最小非负整数解. \(\\\) 算法思想 本质是双向搜索,或阈值优化的思想. 首先设"步幅" 为 \(m=\lceil{ \sqrt p}\rceil\) ,然后将方程写作 \[ a^{i\times m-j}\equiv b\pmod p \] 其中 \(i\) 就是所谓"大步", \(j\) 就是…
$BSGS$ 算法 $Baby\ Steps\ Giant\ Steps$. 致力于解决给定两个互质的数 $a,\ p$ 求一个最小的非负整数 $x$ 使得 $a^x\equiv b(mod\ p)$ 其中 $b$ 为任意正整数,$2≤a<p$,$2≤b<p$ 该算法使用的原理与欧拉定理有关,其中$a,\ p$互质 $a^{\phi (p)}\equiv 1(mod\ p)$ 又因为 $a^0\equiv 1(mod\ p)$ 所以$0到\phi p$是一个循环节,也就是说该算法最多查找$\p…
BSGS BSGS,全称叫 BabyStepGiantStep,也就是大步小步 其实还是比较暴力的 它可以\(O(\sqrt p)\)的复杂度内解出: \[a^x\equiv n\pmod p,\gcd(a,p)=1 \] 中\(x\)的值 如果\(\gcd(a,p)\neq 1\)就要用到 exBSGS 了 我们考虑令\(x=im-k,0\le k<m\) 那么原式变为 \[a^{im-k}\equiv n\pmod p \] \[a^{im}\equiv na^k\pmod p \] 那么,…
前置芝士: 1.快速幂(用于求一个数的幂次方) 2.STL里的map(快速查找) 详解 BSGS 算法适用于解决高次同余方程 \(a^x\equiv b (mod p)\) 由费马小定理可得 x <= p-1 我们设 \(m = sqrt(p)\) 至于为什么写,下文会讲到. 那么\(x\)就可以用 \(m\) 表示出来. 即 x = \(k \times m - j\) 移项可得 \(a^t \equiv b\times a^j\) 其中 t = \(k \times m\) 这也就是我们为什…
我的 BSGS 和各位犇犇的差不多,但是不需要求逆元 Luogu [ TJOI2007 ] 可爱的质数 原题展现 题目描述 给定一个质数 \(p\),以及一个整数 \(b\),一个整数 \(n\),现在要求你计算一个最小的非负整数 \(l\),满足 \(b^l \equiv n \pmod p\). 输入格式 仅一行,有 \(3\) 个整数,依次代表 \(p, b, n\). 输出格式 仅一行,如果有 \(l\) 满足该要求,输出最小的 \(l\),否则输出 no solution. 样例 #1…
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Python, Java, 经验] category: Python --- 我曾经是一个对Java非常反感的人,因为Java的语法非常啰嗦.而用惯了动态类型的Python再使用静态类型的Java就会觉得多出了很多的工作量. 因为工作的关系,我开始使用Java来做项目.在这个过程中,我发现Java在某些方面…
2818: Gcd Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 4436  Solved: 1957[Submit][Status][Discuss] Description 给定整数N,求1<=x,y<=N且Gcd(x,y)为素数的数对(x,y)有多少对. 1<=N<=10^7 uva上做过gcd(x,y)=1的题 gcd(x,y)=p ---> gcd(x/p,y/p)=1 每个质数做一遍行了 答案是欧拉函数的前缀和*2…
Description: Count the number of prime numbers less than a non-negative number, n click to show more hints. References: How Many Primes Are There? Sieve of Eratosthenes Credits:Special thanks to @mithmatt for adding this problem and creating all test…
以为所有N的除数都是以根号N为轴对称的. 例如16的开方为4: 16%1 == 0 则1 与 16 都是16的除数. 16%2 == 0 则2 与 8 都是16的除数. 16%4 ==0 则4 为16 的除数. 如果继续查找,找到 8 则已经添加. 所以判断一个数为质数与否的复杂度为O(根号N)…
今天面试,遇到面试官询求最大公约数.小学就学过的奥数题,居然忘了!只好回答分解质因数再求解! 回来果断复习下,常用方法辗转相除法和更相减损法,小学奥数都学过,很简单,就不细说了,忘了的话可以百度:http://baike.baidu.com/link?url=Ba106RbHkMjZm3rolmCHEEFt3eDkVbngcReykcqt4Wv0dbTI_0ZmTDE5b0X-xWFx 以下是代码实现,这两种方法,还有常规的分解因式,顺便比较了一下效率,其中分解因式用了两种方法来求取小于该数字的…
最近求职时的其中一道面试题: 求100之内的质数 <? //求100以内质数 for ($i = 1; $i <= 100; $i++) { $k = 0; for ($j = 1; $j < $i; $j++) { if ($i % $j == 0) { $k++; } } if ($k == 1) { echo $i; echo "  "; } } ?>…
#!bin/bash a= $) ;do n= $x);do ];then n=$[$n+] fi done ];then { echo -n -e "$x\t" sum=$[$sum+$x] a=$[$a+] } ];then { echo a= } fi done echo echo "1到$1之间的质数之和为:$sum" 变量: sum 累加质数的和 a 格式打印控制 n 判断是否为质数 2 则为质数…
难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 将正整数 x 的约数个数表示为 g(x).例如,g(1)=1,g(4)=3, g(6)=4. 如果对于任意正整数y,当 0 < y < x 时,x 都满足 g(x) > g(y), 则称 x 为反质数.整数 1,2,4,6 等都是反质数. 现在任意给定两个正整数 M, N,其中,M < N <= 20000000,按从小到大输出其中(包括 M 和 N)的所有…
      作为万代南梦宫娱乐的偶像养成游戏[偶像大师]的派生作品,是由Mobage创作的[偶像大师 灰姑娘女孩].这个游戏的最新作品,是现在累计下载突破1200万的大作,Android/iOS平台的[偶像大师 灰姑娘女孩 星光舞台 ].       在CEDEC 2016上,由负责开发的Cygames进行了关于[星光舞台]的制作示例讲解.本稿中,是[美术篇]和[技术篇]的两个演讲篇中,以[美术篇]为中心介绍的(译注:技术篇在另外一篇分享).登场的是Cygames设计部的3DCG美术组经理谷本裕…
http://game.watch.impress.co.jp/docs/news/1016369.html         自从街机版的运营依赖,今年迎来了[偶像大师]系列的11周年.在CEDEC 2016的第一天,开展了关于最新作PS4上的[偶像大师  白金星光]的演讲.     登台演讲的,有万代南梦宫工作室的视觉美术阿部貴之氏,本做的背景主美富田智子氏,以及本作的主程前澤圭一氏.     本作作为系列的第一个PS4版,从发布开始偶像们的视觉表现就得到了很高的评价,这次的演讲是以制作时的视…
计算今年是否是闰年.判断闰年条件,满足年份模400 为0,或者模4 为0 但模100不为0. def is_learp_year(year): """判断年份是否为润年""" flag = False if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0): flag = True return flag 利用Python 作为科学计算器的特性,熟悉Python 中的常用运算符,并分别求…
---恢复内容开始--- 描述 输入一个正整数n,求第n小的质数. 输入 一个不超过10000的正整数n. 输出 第n小的质数. 样例输入 10 样例输出 29 方法1:合数一定可以表示成一个比它小的质数的几倍,所以若一个数不能整除比它小的所有的质数,则这个数是质数.所以,若要找第n个质数,则可以第n-1个质数为起点开始,通过上述方法判断. #include<iostream> using namespace std; int n,s; ]; int pan(int t) { ) { ; ;i…
用python求从1开始第1000个质数? 质数:只能被1和它本身整除的数.那好,我们开始写程序(一个小算法). def calc_prime(prime,num): i,gab=7,2 while num>3: flag=True for x in prime: if x*x>i: break if i%x==0: flag=False break if flag: prime.append(i) if len(prime)>=num: break gab=6-gab i+=gab r…
题目链接:51nod 1181 质数中的质数(质数筛法) #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; ; ]; void getPrime(){ memset(prime, , sizeof(prime)); ;i <= N; i++){ if(!prime[i]) pr…
摘自:http://blog.csdn.net/yang_yulei/article/details/46337405 哈希树的理论基础 [质数分辨定理] 简单地说就是:n个不同的质数可以"分辨"的连续整数的个数和他们的乘积相等."分辨"就是指这些连续的整数不可能有完全相同的余数序列. (这个定理的证明详见:http://wenku.baidu.com/view/16b2c7abd1f34693daef3e58.html) 例如: 从2起的连续质数,连续10个质数就…
<script type="text/javascript"> for(var i = 3; i <= 100; i ++) {//控制2-100所有的数i for( var j = 2; j < i ; j ++){//将每一个比i小的数与i进行取模,如果如果为0那么说明这个数不是质数如果所有的数都不为0,那么这个数是质数 if( i % j == 0) { // console.log(i + "不是一个质数"); break; } if…
class Program { public static List<int> list; static void Main(string[] args) { Console.WriteLine("请输入下限:"); int min = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入上限:"); int max = Convert.ToInt32(Console.ReadLine()…