学习手记(2018/7/14~2018/7/18)

2018/7/14:普通的纪中一天

儿子兄弟表示法

将一颗多叉树转换为二叉树的方法,左子节点连原树的第一个儿子,右子节点连原树的右边的兄弟
学习手记(2018/7/14~2018/7/18)
适用范围:树形dp

数位dp常见方法

  1. 状态压缩
  1. 分类讨论
  2. 记忆法(记忆化搜索)

手推exgcd

ax+by=gcd(a,b)ax+by=gcd(a,b)
bx+(a%b)y=gcd(b,a%b)bx'+(a\%b)y'=gcd(b,a\%b)
展开(a%b)(a\%b)
bx+(aa/bb)y=gcd(b,a%b)bx'+(a-\lfloor a/b\rfloor b)y'=gcd(b,a\%b)
拆开括号
bx+aya/bby=gcd(b,a%b)bx'+ay'-\lfloor a/b\rfloor by'=gcd(b,a\%b)
aabb取出
ay+b(xa/by)=gcd(b,a%b)ay'+b(x'-\lfloor a/b\rfloor y')=gcd(b,a\%b)
gcd(a,b)=gcd(b,a%b)\because gcd(a,b)=gcd(b,a\%b)
ay+b(xa/by)=ax+by\therefore ay'+b(x'-\lfloor a/b\rfloor y')=ax+by
将两边的aabb取出
y+(xa/by)=x+yy'+(x'-\lfloor a/b \rfloor y')=x+y
然后由于两边是等价的
{x=yy=(xa/by) \therefore \left\{\begin{matrix} \\ x=y' \\ y=(x'-\lfloor a/b \rfloor y') \\ \\ \end{matrix}\right.


2018/7/16:腐败普通的纪中一天

gcd证明

d=gcd(a,b)我们设d=gcd(a,b)
da,db\because d\mid a,d\mid b
da%b\therefore d\mid a\%b
gcd(b,a%b)=d设gcd(b,a\%b)=d'
db,da%b\because d'\mid b,d'\mid a\%b
da\therefore d'\mid a
gcd(a,b)=gcd(b,a%b)gcd(a,b)=gcd(b,a\%b)


2018/7/17:颓废普通的纪中一天

时间复杂的与数据范围

n15      O(2n)n\leqslant 15\ \ \ :\ \ \ O(2^n)
n70      O(n4)n\leqslant 70\ \ \ :\ \ \ O(n^4)
n500      O(n3)n\leqslant 500\ \ \ :\ \ \ O(n^3)
n5000      O(n2)n\leqslant 5000\ \ \ :\ \ \ O(n^2)
n104      O(nn)n\leqslant 10^4\ \ \ :\ \ \ O(n\sqrt n)
n105      O(n  (log n)2)n\leqslant 10^5\ \ \ :\ \ \ O(n\ \ (log\ n)^2)
n5105      O(n  log n)n\leqslant 5*10^5\ \ \ :\ \ \ O(n\ \ log\ n)
n106      O(n  log log n)n\leqslant 10^6\ \ \ :\ \ \ O(n\ \ log\ log\ n)
n5106      O(n)n\leqslant 5*10^6\ \ \ :\ \ \ O(n)
n2147483647      O(n)n\leqslant 2147483647\ \ \ :\ \ \ O(\sqrt n)
nmax_longlong      O(log n)n\leqslant max\_longlong\ \ \ :\ \ \ O(log\ n)


2018/7/18:罕见正常的纪中一天

gcd的和之一

i=1ngcd(n,i)\sum_{i=1}^n gcd(n,i)
==
dnφ(n/d)×d\sum_{d|n} \varphi(n/d)\times d
证明与例题:https://blog.****.net/mr_wuyongcong/article/details/81104903