总得来说,这是可怕的一天,极其可怕的一天(完)

一、数论

阴影啊!

首先,设ab为两个整数,则存在唯一的q和r,使得a=qb+r

若r=0,则b整除a,记作b|a。

(1)同余

若a/m和b/m的余数相同,则称a于b对模m同余,记作a ≡ b (mod m)

剩余系:在模 m 的意义下,余数相同的数归为一个集合,那么所有整数被分为 m个不同的集合,模 m 的余数分别为 0,1,2,3,...,m − 1,这些集合被称为模 m 剩余类(同余类)。每个同余类中的任意两个整数都是模 m 同余的。__by dzy(就是模m的余数集合)

若是剩余系遍历了0~m-1,则叫做完全剩余系

  • 同余式的三则运算:
  • 设 a,b,c,d 为整数,m 为正整数,若 a ≡ b (mod m),c ≡ d(mod m),则:

  • ax + cy ≡ bx + dy (mod m),其中 x,y 为任意整数,即同余式可以相加()
  • ac ≡ bd (mod m),即同余式可以相乘a n ≡ b n (mod m),其中 n > 0
  • f(a) ≡ f(b) (mod m),其中 f(x) 为任一多项式。
  • a n ≡ b n (mod m),其中 n > 0

(2)素数

判断素数的方法:一般是从2开始,枚举到√ n,依次判断i是否能整除n,若n=pq,则pq中的一个必定小于等于√ n。

但是,如果硬生生跑√ n,那么如果需要素数的话可能会把评测姬卡哭喔

所以我们需要:

素数筛

原理1:考虑在每找到一个素数的时候把它的倍数也标记上。这样就可以实现:大大减少

复杂度:O(nloglogn)基本达到线性。

但是它还有优化的空间:

比如12,跑到2的时候它被筛了一次,跑到3的时候它又被干了一次

所以极端情况评测姬还是会被卡哭....

我们强制命令每一个数都只被它的最小质因数给筛去,

于是,伟大的线性筛出生了

原理2:每一个数都只被它的最小质因数给筛去

下for解释:

如果大于上界,退出,

标记非质数

如果i被之前的素数筛过了(这里保证了线性,即每个数只来一遍)

三、欧拉函数(φ(n))是指不超过n且与n互质的数的个

  • p是一个质数,则φ(p)=p-1(除了1都与p互质)(逆定理依旧成立)
  • p是质数,a是正整数,则(显然只有p的倍数与p^a 不互质,故可得到上式)
  • 如果mn互质,则φ(mn)=φ(m)*φ(n)必须互质!!(证明长啊。。。甩个链接https://cdn.luogu.org/upload/pic/69862.png)

欧拉定理:如果a,m互质,那么:

此证明不难理解:

*x1 * x2 * x3.....xφ(m)≡x1 * x2 * x3.....xφ(mod m)

同除

x1x2x3......

常用的是:费马小定理

当 p 是质数,a ̸= p 时,有 a p−1 ≡ 1 (mod p)。。

广义欧拉定理:

证明是真的不会....放链接https://blog.csdn.net/zxyoi_dreamer/article/details/82929466

四、gcd部分

lcm(最小公倍数)(a,b)=ab/gcd(a,b);

求算gcd:欧几里得算法(辗转相除)

原理:gcd(a,b)=gcd(b,a-b)

设 (a,b) = g,a = cg,b = dg,那么 (c,d) = 1。
(b,a − b) = (d,c − d)g。
如果 (d,c − d) = q ̸= 1,那么 (c,d) ≥ q ̸= 1,矛盾。
所以 (b,a − b) = (d,c − d)g = g。

所以gcd就诞生了

int gcd(int a,int b)
{
if(b==)return a;
else gcd(b,a%b);
}(短小精悍)

exgcd(一次不定方程)

考虑求解方程:ax+by=c

有解的情况是:gcd(a,b)|c。

当b=0,gcd(a,b)=a;

当b!=0,gcd(a,b)=gcd(b,a%b);

所以原方程——>bx2+(a%b)y2=gcd(b,a%b)

于是我们就可以递归求解。

五、逆元

在一些情况下,(比如组合数)要边除边膜,这样可能暴毙。。。

所以逆元登场了。除一个数等于乘一个数的倒数,所以逆元就是除数膜的倒数

来看看正经的定义:

若(a,m)=1,且ab≡ 1 (mod m),则b就是a%m意义下的逆元。

(a/b≡ a ∗ c (mod m))

求解逆元的方法:

1、费马小定理

根据定义,ab≡ 1 (mod m),及费马小定理,得:

所以a^(p-2)*a≡1(mod p)所以得a^p-2是a的逆元

2、exgcd

已知exgcd可用于求解ax+by=1的解,那么exgcd怎么求算逆元呢?

如果ax+by=1,则ax≡1(mod m)所以x就是a在模m意义下的逆元。

3、线性递推

https://www.cnblogs.com/qdscwyy/p/7795368.html

六、多元一次不定方程

1、二元一次不定方程

exgcd.....系数同除以c,然后解再乘上c就行了

2、多元方程组

n元一次不定方程:

当且仅当(a1; a2; :::; an)|c,方程有解。

怎么解呢?

设(a1; a2) = d2; (d2; a3) = d3; :::; (dn-1; an) = dn,那么方程等价于:

于是可以从最后一个开始求,然后代回去,直到第一个。

3、一元线性同于方程:

形如ax≡b (mod m)

等价于ax-my=b,直接exgcd即可。

形如

的可爱方程组~(彻底败给了dzy大神的讲解顺序啊....先exCRT再CRT.....真的醉了)

(1)CRT解法 限制:m1,m2,互质,若m不互质,甚至可以质因数分解强行互质.....

令ei=1/Mi*Mi mod m

则:

所以,

(2)exCRT(合并法)

考虑两两合并:

由于x≡b(mod m)等价于x-my=b,

当:

根据上述展开,得

所以,我们令m=lcm(m1,m2),此方程就变成了:

最后得到一个方程,那么这个解就是最终解

七、神仙

实在是看不懂,老师也没有讲,果然还是我太弱了

day3(数论)的更多相关文章

  1. Day3:T1数论+高精 T2搜索

    T1:数论+高精(水~) 根据题意可知,从除的数越大越好(在0~9中) 所以我们只要用到高精除然后再模拟一下就可以了 //MARK:但是要注意0-9这个特殊值需要特判,因为题目要求输出的数至少是两位数 ...

  2. 【CCPC-Wannafly Winter Camp Day3 (Div1) F】小清新数论(莫比乌斯反演+杜教筛)

    点此看题面 大致题意: 让你求出\(\sum_{i=1}^n\sum_{j=1}^n\mu(gcd(i,j))\). 莫比乌斯反演 这种题目,一看就是莫比乌斯反演啊!(连莫比乌斯函数都有) 关于莫比乌 ...

  3. 简单数论 | Day3 部分题解

    A - The Euler function 来源:HDU 2824 计算[a,b]区间内的整数的欧拉函数值,需要掌握单个欧拉函数和函数表的使用. #include <iostream> ...

  4. qbxt Day3 on 2019-8-18

    qbxt Day3 on 2019-8-18 一.基础数论 1.进制转换 进制转换是一个非常简单且基础的问题. 也许我们只需要...Emmm... 列个式子就好了鸭 设\(k\)进制数每一位上是\(a ...

  5. Codeforces Round #382 Div. 2【数论】

    C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...

  6. NOIP2014 uoj20解方程 数论(同余)

    又是数论题 Q&A Q:你TM做数论上瘾了吗 A:没办法我数论太差了,得多练(shui)啊 题意 题目描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, ...

  7. 数论学习笔记之解线性方程 a*x + b*y = gcd(a,b)

    ~>>_<<~ 咳咳!!!今天写此笔记,以防他日老年痴呆后不会解方程了!!! Begin ! ~1~, 首先呢,就看到了一个 gcd(a,b),这是什么鬼玩意呢?什么鬼玩意并不 ...

  8. hdu 1299 Diophantus of Alexandria (数论)

    Diophantus of Alexandria Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  9. 【BZOJ-4522】密钥破解 数论 + 模拟 ( Pollard_Rho分解 + Exgcd求逆元 + 快速幂 + 快速乘)

    4522: [Cqoi2016]密钥破解 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 290  Solved: 148[Submit][Status ...

随机推荐

  1. 服务网关Spring Cloud Zuul

    Spring Cloud Zuul 开发环境 idea 2019.1.2 jdk1.8.0_201 Spring Boot 2.1.9.RELEASE Spring Cloud Greenwich S ...

  2. Spring Security 自定义登录认证(二)

    一.前言 本篇文章将讲述Spring Security自定义登录认证校验用户名.密码,自定义密码加密方式,以及在前后端分离的情况下认证失败或成功处理返回json格式数据 温馨小提示:Spring Se ...

  3. Reportviewer拖到winform不显示控件

    Vs2017使用的是rdlc Microsoft.ReportingServices.ReportViewerControl.Winforms.140.340.80版本的,但是NuGet默认安装的是最 ...

  4. bugku 程序员本地网站

    提示从本地访问,怎样让服务器认为你是从本地进行访问的: 使用burp抓包并在包中进行修改加入X-Forwarded-For: 127.0.0.1 X-Forwarded-For: 简称XFF头,它代表 ...

  5. 从源码角度看JedisPoolConfig参数配置

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 你好,JedisPoolConfig Java中使用Jedis作为连接Redis的工具.在使用Jedis的也可以配置Jed ...

  6. VMware workstation Windows 10虚拟机安装步骤

    1. 在首页点击创建新的虚拟机 2. 选择典型,下一步 3.选择稍后安装操做系统,下一步. 4. 选择第一个Microsoft Windows,版本选择如图. 5. 选择安装位置,我放在D盘. 7. ...

  7. Java基础之集合框架(Collection接口和List接口)

    首先我们说说集合有什么作用. 一.集合的作用 1.在类的内部,对数据进行组织: 2.简单而快速的搜索大数量的条目: 3.有的集合接口,提供一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关 ...

  8. JAVA中JDK开发环搭的搭建,jvm jre

    1.JDK的下载与安装: www.oracle.com 安装需要注意的是:不能把jdk安装到有空格或中文的文件夹中,建议大家在某个目录下创建一个JavaWeb的文件夹,然后把所学的java所有内容(后 ...

  9. msf之hash攻击

    使用hashdump抓取密码(需要系统管理权限) 另外一个更强大的模块 smart_hashdump 如果目标是win7 就需要先绕过UAC 还可以使用msf内置的mimikatz抓取hash msv ...

  10. Mqtt-Client

    客户端选择:paho MQTT client. 使用vs2013编译成库 需要用到paho-mqtt3a库和paho-mqtt3c库.