TAT快noip了才开始去接触数论(真心不敢学。。)这里做一下整理吧(都是些定义之类的东西= =)

欧几里德:gcd(a,b)=gcd(b,a%b);具体证明见百科?

扩展欧几里德:

  求a*x+b*y=gcd(a,b);

  因为gcd(a,b)=gcd(b,a%b)即gcd(b,a-a/b*b);

  所以可以递归求解:

    递归到b=0时显然gcd为a,x=1,y=0;

    已知b*x'+(a-a/b*b)*y'=gcd(b,a-b/b*b)=gcd(a,b)=a*x+b*y;

    b*x'+(a-a/b*b)*y' = a*y'+b*(x'-a/b*y');

    所以x=y';y=x'-a/b*y';

  然后解显然不只一个。。设我们一开始求出来的解为x0,y0

  x = x0 + b/Gcd(a, b) * k
    y = y0 -  a/Gcd(a, b) * k(k为任意整数)(代入一下就知道正确性了。。)

  有的时候(似乎很多时候?)gcd(a,b)=1.....

  各种低级应用:

  不定方程向:

    求x,y,使a*x+b*y=c;(只有c为gcd(a,b)的倍数时才有解)

    解就是a*x+b*y=gcd(a,b)的每个解乘上c/gcd(a,b)。。或者说是a/gcd(a,b)*x+b/gcd(a,b)=1的每个解乘上c

   解模线性方程(最基本的同余方程)ax ≡ b(mod p)

    因为a*x mod p实际就是a*x-a*x/p*p..所以等价于解不定方程 a*x+p*y=b

  乘法逆元向:
    满足b*k≡1 (mod p)的k值就是b关于p的乘法逆元。
    应用:
      求(a/b) mod p的值时,a过大等等感人情况(比如求模意义下较大的组合数或者卡特兰数或者是奇怪的数学题?)
      求b关于p的乘法逆元k,(a*k) mod p的结果与(a/b) mod p等价
    证明:

      已求出b*k≡1(mod p);
      即b*k=p*x+1;

      所以k=(p*x+1)/b;
      a*k=a/b*(p*x+1)
      (a*k) mod p

       =(a/b*(p*x+1))mod p
       =(a/b*p*x+a/b)mod p
       =(a/b)mod p

    求逆元:

      a*k≡1(mod p)即a*k=p*x+1
      相当于解不定方程a*k-p*x=1(a,p已知)

素数线性筛:

  万年大坑现在才来填QAQ。。虽然以前用埃氏筛法似乎姿势好可以混过去?

  埃氏筛法的缺点是合数可能会被多次筛到(取决于它有多少个质因数)

  现在对于每个数i,

  1、若i为素数,枚举不大于i的素数j,则i*j为合数(此时不可能有重复)
  2、 i为合数,则设i=p1^a1*p1*a2*p3^a3。。。。(整数分解)
  枚举所有小于或等于p1的素数j,i*j为合数
  不会重复计算是因为每个数都是被它的最小质因数筛到的

欧拉函数线性筛:
  设a为n的某个质因数,
  1、若n/a整除a,则phi(n)=phi(n/a)*a(每个与n/a互质的数也与a互质)
  2、 若n/a不整除a,则phi(n)=phi(n/a)*(a-1)(因为a是素数,phi(a)=a-1,gcd(a,n/a)=1,由欧拉函数的积性phi(n)=phi(n/a)*phi(a)......)

感觉今年noip考数论的话我就得直接退役了QAQ

UPD:2333今年没数论。。然而还是不会写的题还是不会TAT

noip级别数论?的更多相关文章

  1. noip级别模板小复习

    不是很noip的知识点就不写了. dij什么的太easy就不写了. 缩点 注意\(Tarjan\)在缩边双和求强联通分量时候的区别. 一个要判断是否在栈内一个不要. 最后\(topsort\)来\(d ...

  2. NOIp 基础数论知识点总结

    推荐阅读 NOIp 数学知识点总结: https://www.cnblogs.com/greyqz/p/maths.html Basic 常用素数表:https://www.cnblogs.com/g ...

  3. NOIP 考前 数论复习

    POJ 2891 x=r1 (mod a1) x=r2 (mod a2) x=a1*x+r1,x=a2*y+r2; a1*x-a2*y=r2-r1; 用Extend_Gcd求出m1*x+m2*y=d; ...

  4. [总结] NOIP 前的考试记录

    sb博主又犯sb错误了! 他觉得以往模拟赛因为犯sb错误扔的分足足有1k分了! 于是他想记录一下自己犯的sb错误看看自己到底有多sb! 嗯就从今天开始吧 2018.9.28 1. 二分边界写错.骚什么 ...

  5. 6.19 noip模拟题(题目及解析转自 hzwer 2014-3-15 NOIP模拟赛)

    Problem 1 高级打字机(type.cpp/c/pas) [题目描述] 早苗入手了最新的高级打字机.最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧. 请为这种高级打字机设计一个程序 ...

  6. NOIP 2018 -The Wound-

    "一招不慎,满盘皆输" 如果这个盘是整整一年的OI生涯的话 那么"一招"一定就是NOIP了 Update 2019/4/6 剧变的一年 noip这个成绩意味着我 ...

  7. 2016-06-19 NOIP模拟赛

          2016-06-19 NOIP模拟赛 by coolyangzc 共3道题目,时间3小时 题目名 高级打字机 不等数列 经营与开发 源文件 type.cpp/c/pas num.cpp/c ...

  8. NOIp 数学知识点总结

    推荐阅读 NOIp 基础数论知识点总结: https://www.cnblogs.com/greyqz/p/number.html 排列组合 常用公式 排列:\[\displaystyle A_n^m ...

  9. Noip2018退役记。

    下面是边考试边写的严肃版退役记\(:D\) Day0 其实我本来想取个这个名字:\(NOIP2018\)提高组复赛试题解析 但是这个博客自己求生欲望太强自己改名了. 先占个坑. noip考前毒奶 \( ...

随机推荐

  1. C++各种指针辨析

    1)int *p p与*结合,表明p是一个指针 然后前面int说明p是一个整形的指针 2)int *p[n] 因为[]比*优先级高,所以p先与[]结合,表明p是个数组,然后这个数组在与*结合,说明数组 ...

  2. [转]winform 自动伸缩控件xpandercontrols 使用说明

    链接地址:http://blog.sina.com.cn/s/blog_b5b004920101f5h3.html

  3. 1-MySQL数据库(android连接MySQL数据库)

    很好的链接 http://www.cnblogs.com/best/p/6517755.html  一个小时学会MySQL数据库 http://www.cnblogs.com/klguang/p/47 ...

  4. 【WebGL】《WebGL编程指南》读书笔记——第3章

    一.前言 根据前面一章的内容,继续第三章的学习. 二.正文       一起绘制三个点,这里要使用到缓存了 var n = initVertexBuffers(gl); //返回绘制点的个数 n ) ...

  5. ECMAScript中的两种属性

    数据属性 数据属性包含一个数据值的位置.在这个位置可以读取和写入值.数据属性一般用于存储数据数值. 数据属性有4个描述其行为的特征. configurable:true/false,是否可以通过del ...

  6. ElasticSearch 学习记录之如任何设计可扩容的索引结构

    扩容设计 扩容的单元 一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合 一个分片即为 扩容的单元 . 一个最小的索引拥有一个分片. 一个只有一个分片的索引 ...

  7. 小白的Python之路 day4 json and pickle数据标准序列化

    一.简述 我们在写入文件中的数据,只能是字符串或者二进制,但是要传入文件的数据不一定全是字符串或者二进制,那还要进行繁琐的转换,然后再读取的时候,还要再转回去,显得很麻烦,今天就来学习标准的序列化:j ...

  8. [编织消息框架][netty源码分析]14 PoolChunk 的 PoolSubpage

    final class PoolSubpage<T> implements PoolSubpageMetric { //该page分配的chunk final PoolChunk<T ...

  9. webpack3.x基本配置与总结

    基本配置 1.开始之前,请确定你已经安装了当前 Node 的较新版本. 2.然后在文件夹根目录下执行以下命令初始化项目并全局安装webpack: 1.$ cnpm init // 初始化项目 2.$ ...

  10. 房上的猫:if选择结构

    一.基本if结构: 1.定义:if选择结构是根据条件判断之后再做处理的一种语法结构! 2.逻辑:首先对条件进行判断  >如果为真,则执行代码块  >如果为假,执行代码块后面的部分二.常用逻 ...