北京信息学培训第二天

来源:互联网 发布:mysql脚本自动生成id 编辑:程序博客网 时间:2024/04/29 06:49

  • 简单行程
  • 学到了什么
  • 附件
    • LCA问题的三个常用方法比较
      • 倍增
      • tarjan方法
      • 数链剖分
    • 离线和在线的意义
      • 在线
      • 离线
    • 逆元的用处
    • 求逆元两种常用方法的比较
      • 扩展欧几里德算法
      • 费马小定理

简单行程

  今天和昨天相比没啥变化,但还是有一下几点变化:

  1. 中午换了一家饭店
  2. 早饭的菜和昨天不一样
  3. 今天刷的水题没有昨天多
  4. 今天学的知识比昨天多了不少
    其他的就没啥不同的了。
    Summary:总的来说,还可以,学了不少知识,非常愉♂悦。

学到了什么?

  1. 开O2优化,快排和桶排速度差不多;但是如果不开O2优化,快排要比桶排速度慢。
  2. 倍增的本质是分治。
  3. 求LCA问题的三种方法的比较(详情见附件)。
  4. 离线和在线的意义(详情见附件)。
  5. {x|存在k∈N,使得x≡k*a(mod b)}的元素个数为b/gcd(a,b)。
  6. 逆元可以用于处理除法过程中需要取模运算的情况(详情见附件)。
  7. 求逆元的两种常用方法的比较(详情见附件)。
  8. 欧拉筛(日后会专门写博文介绍)。
      大概就是这样,还有些不太重要的就没往上写了,下面,将在附件中详细讲一下某些知识点。

附件

LCA问题的三个常用方法比较

倍增

优点:好写
缺点:时空复杂度都高,而且要求在线。

tarjan方法

优点:时间复杂度理论上是三种中最低的一个,而且可以离线。

数链剖分

优点:时间复杂度实际上最低。
缺点:要求在线。

离线和在线的意义

在线

啥叫在线?很简单,就是指,每读入一个问题,就可以立刻解决它,给出答案。(看不懂的话,看看离线的意义)

离线

相对于在线 ,离线是指需要一次性将所有的问题读入,然后依据各个问题之间的联系来解决每个问题。

逆元的用处

简单给出逆元的定义:a*a^(-1)≡1(mod P)
注意:这里a^(-1)只是个符号,a和a^(-1)都是整数。
逆元的用处在于求x/a%p,因为x/a%p!=(x%p)/(a%p),所以不便于操作。我们可以利用逆元来进行转化。
x/a%p=(x/a%p)*1=(x/a%p)*(a*a^(-1)%p)=x*a*a^(-1)/a%p=x*a^(-1)%p
这样就成功转化为两个整数相乘取模了。

求逆元两种常用方法的比较

扩展欧几里德算法

优点:速度快,适用面广。

费马小定理

优点:好写。

原创粉丝点击