一) 矩阵 用途 矩阵快速幂 (一般用于优化dp) 二) 质数 内容 质数筛法 分解质因数 三) 约数 内容 最大公约数 (欧几里得算法) 欧拉函数 (欧拉函数 学习笔记) 题目 反素数 (解题报告) 余数之和 (解题报告) Hankson 的趣味题 (解题报告) 四) 同余 同余 学习笔记 内容 欧拉定理
一、同余定理的定义: 两个整数a,b,如果他们同时对一个自然数m求余所得的余数相同,则称a,b对于模m同余。记作a≡b(mod m)。读为:a同余于b模m。在这里“≡”是同余符号。 二、同余定理的一些性质: 对于同一个除数,两个数之和(或差)与它们的余数之和(或差)同余。(加减乘同理)
扩展欧几里得算法。 修复了溢出longlong的bug。在int128下也不容易进一步溢出了。求解模n意义下a的逆元,即求方程LCE2(a,1,n,x),结果放入x中,返回值指示是否有解。 ll gcd(ll a, ll b) { if(b == 0) return a; while(ll t = a % b) a = b, b = t; return
题意: 思路:From https://www.cnblogs.com/GavinZheng/p/11709153.html#4421510 写的1e9,int范围的 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 typedef unsigned int uint; 5 typedef unsigned long long ull; 6 typedef lo
原题: 求关于xx的同余方程ax≡1(mod b)的最小正整数解。 裸题 当年被这题劝退,现在老子终于学会exgcd了哈哈哈哈哈哈哈哈 ax≡1(mod b) => ax=1+by => ax-by=1 => ax+by=1 若要保证有解,必须满足gcd(a, b)|1即gcd(a, b)=1 那么exgcd搞完之后只需加减b就能得到最小非负整数解 注意
quiz 1 1. For all m,n ∈ ℕ>0 and all a,b ∈ ℤ: if a = b (mod m) and a = b (mod n) then a = b (mod mn) answer: False 如17和5关于2同余1,关于4同余1,但是2*4=8,17和5不关于8同余 quiz 2 补充:空集与任何集合的笛卡尔积仍是空集 answer: b d 本题即求属于前者闭包且不属
链接: https://www.acwing.com/problem/content/205/ 题意: 求关于x的同余方程 ax ≡ 1(mod b) 的最小正整数解。 思路: 首先:扩展欧几里得推导. 有ax+by = gcd(a, b) = gcd(b, a%b), ax+by = bx+(a%b)y ax+by = bx+(a-(a/b)b)y ax+by = bx + ay-(a/b)by ax+by = ay + b(x-a/by)
题目地址 赤裸裸的一道数论题啊啊啊啊啊啊,学过同余基本就莫得问题了 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 long long x, y;//目前方程真正的解 5 6 void exgcd(long long a, long long b) 7 { 8 //当前目的:求解 ax + by = gcd(a, b) 这么一个方程 9 10
题目描述 求关于xx的同余方程 a x \equiv 1 \pmod {b}ax≡1(modb) 的最小正整数解。 输入格式 一行,包含两个正整数 a,ba,b,用一个空格隔开。 输出格式 一个正整数 x_0x0,即最小正整数解。输入数据保证一定有解。 输入输出样例 输入 #1复制 3 10 输出 #1复制 7 说明/
同余3:解高次同余方程的BSGS算法及其扩展学习笔记阶原根指标离散对数BSGS算法扩展BSGS算法解决第二个公式的方法(待填) 前言:在前两篇博客,我提到了解决单个线性同余方程的方法,以及解决线性同余方程组的方法,但是,当单个同余方程变成Ax≡B(modP)A^x \equiv B \pmod PAx≡B(modP)或
同余基本概念 剩余系 欧拉函数 欧拉函数φ(n)表示1~n中所有与n互质的数。比如1~8中与8互质的数有1,3,5,7,所以φ(8)=4。 公式1:如果p是素数,有φ(p)=p-1。 公式2(积性):如果(a,b)=1,有φ(a*b)=φ(a)*φ(b), --->以下是公式二的证明过程 设模a的一个简系为a1,a2,a3,…,aφ(a),
https://www.acwing.com/problem/content/880/ #include <bits/stdc++.h> using namespace std; int ex_gcd(int a,int b,int &x,int &y) { if (!b) { x=1,y=0; return a; } int d=ex_gcd(b,a%b,y,x); y-=a/b*x; retu
扩展欧几里得定理用于解方程 ax + by = gcd(a,b) int Exgcd(int a, int b, int &x, int &y) { if (!b) { x = 1; y = 0; return a; } int d = Exgcd(b, a % b, x, y); int t = x; x = y; y = t - (a / b) * y; return d;} 证明见:https://oi-wiki.org/math/gcd/ 通过
一、题目 SETI 二、分析 给定一个模数,一串字符串,字符串长度为N,相当于是N个方程的答案,而这N个方程中有N个未知数,要求的就是这N个未知数的值,很显然的高斯消元,遇到模数和除法,用逆元就好。 三、AC代码 #include <cstdio>#include <cstring>#include <iostream>#inclu
近期flag: 暑假: 首先,一些实用的东西: STL 对拍 然后刷完数学基础数学蓝书上的bzoj题,再学点扩展的。 素数、整除那一套 同余 扩欧(着重于应用) 线性同余方程(组) 中国剩余定理 逆元(好像没啥学的) BSGS&ExBSGS 矩阵 组合数学 (待添加) 博弈论(有空就学) 先把这些学完了 开学后: 夏令营课
扩展欧几里得 现在有一个不定方程\(ax+by=c\),我们需要求出这个方程的一组特解,且\(x,y\)都为整数。根据悲蜀定理,要得到整数解,必须满足\(\gcd(a,b)|c\),(接下来的所有\(gcd(a,b)\)都会简写为\((a,b)\)) 首先我们可以先求出方程\(ax'+by'=(a,b)\)的特解。 \[ \begin{align} \because&
https://www.luogu.org/problem/P1082 #include <iostream>#include <cstdio>#include <queue>#include <algorithm>#include <cmath>#include <cstring>#define inf 2147483647#define N 1000010#define p(a) putchar(a)#define For(i
#include<iostream>using namespace std;int exgcd(int a,int b,int& x,int& y){ if(b==0) { x=1; y=0; return a; } int t=exgcd(b,a%b,x,y); int x0=x; int y0=y; x=y0; y=x0-(a/b)*y0; re
导入 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何? 上述的一段诗句出自 《孙子算经》 (该书中首次提到了同余方程组问题,以及此问题的解法,因此有些地方也会将中国剩余定理称为孙子定理)。 言归正转 ,上述诗句翻译成现代数学的语言即为: 有一个正整数n,满足n%3==2,n%5==
题目背景 DJL 为了避免成为一只咸鱼,来找 srwudi 学习压代码的技巧。 问题描述 Srwudi 的家是一幢 h 层的摩天大楼。由于前来学习的蒟蒻越来越多,srwudi 改造了一 个跳楼机,使得访客可以更方便的上楼。 经过改造,srwudi 的跳楼机可以采用以下四种方式移动: 1. 向上移动 层; x 2. 向上
题目描述 求关于x的同余方程ax≡1(modb) 的最小正整数解。 输入输出格式 输入格式: 一行,包含两个正整数 a,b,用一个空格隔开。 输出格式: 一个正整数 x_0,即最小正整数解。输入数据保证一定有解。 输入输出样例 输入样例#1: 3 10 输出样例#1:7 说明 【数据范围】 对于 40%的数
同余 a≡b(mod m), 如果a mod m 等于 b mod m,则称为 a与b 对 m 同余。数学符号是 "≡" 同余的扩展 传递性:若a≡b(mod m),b≡c(mod m),则a≡c(mod m); 同余式相加:若a≡b(mod m),c≡d(mod m),则a c≡b d(mod m); 同余式相乘:若a≡b(mod m),c≡d(mod m),则ac≡bd(mod m)。 互质 英语称
给定2n个整数a1,a2,…,ana1,a2,…,an和m1,m2,…,mnm1,m2,…,mn,求一个最小的整数x,满足∀i∈[1,n],x≡mi(mod ai)∀i∈[1,n],x≡mi(mod ai)。 输入格式 第1行包含整数n。 第2..n行:每i+1行包含两个整数aiai和mimi,数之间用空格隔开。 输出格式 输出整数x,如果x不存在,则输出-1。 数据
还是挺难的吧......勉强看懂调了半天 首先表达式可以写成 8(10^x -1)/9,题意为求一个最小的x使L | 8(10^x -1)/9 设d=gcd(L,8) L | 8(10^x -1)/9 <=>9L | 8(10^x -1) <=>9L/d | 10^x -1 (因为 9L/d 和 8/d 互质了 所以 9L/d 能整除(8/d)*(10^x-1)和 8/d 无关,所以可以去掉) <=>10^x 同余 1(mod 9
一、同余: 1。若整数a和整数b除以正整数m的余数相等,则称a,b模m同余,记作a≡b(mod m)。 2。费马小定理:若p是质数,则对于任意整数a,有ap ≡a(mod p)。 3。欧拉定理:若正整数a,n互质,则 aφ(n)≡1(mod n) ,其中φ(n)是欧拉函数。 4。若正整数a,n互质,则对于任意正整数b,有ab≡ab mod φ(n)(mod