2018/7/14:普通的纪中一天
儿子兄弟表示法
将一颗多叉树转换为二叉树的方法,左子节点连原树的第一个儿子,右子节点连原树的右边的兄弟
适用范围:树形dp
数位dp常见方法
- 状态压缩
- 分类讨论
- 记忆法(记忆化搜索)
手推exgcd
ax+by=gcd(a,b)
bx′+(a%b)y′=gcd(b,a%b)
展开
(a%b)
bx′+(a−⌊a/b⌋b)y′=gcd(b,a%b)
拆开括号
bx′+ay′−⌊a/b⌋by′=gcd(b,a%b)
将
a
和
b
取出
ay′+b(x′−⌊a/b⌋y′)=gcd(b,a%b)
∵gcd(a,b)=gcd(b,a%b)
∴ay′+b(x′−⌊a/b⌋y′)=ax+by
将两边的
a
和
b
取出
y′+(x′−⌊a/b⌋y′)=x+y
然后由于两边是等价的
∴⎧⎩⎨⎪⎪⎪⎪⎪⎪x=y′y=(x′−⌊a/b⌋y′)
2018/7/16:腐败普通的纪中一天
gcd证明
我们设d=gcd(a,b)
∵d∣a,d∣b
∴d∣a%b
设gcd(b,a%b)=d′
∵d′∣b,d′∣a%b
∴d′∣a
gcd(a,b)=gcd(b,a%b)
2018/7/17:颓废普通的纪中一天
时间复杂的与数据范围
n⩽15 : O(2n)
n⩽70 : O(n4)
n⩽500 : O(n3)
n⩽5000 : O(n2)
n⩽104 : O(nn−−√)
n⩽105 : O(n (log n)2)
n⩽5∗105 : O(n log n)
n⩽106 : O(n log log n)
n⩽5∗106 : O(n)
n⩽2147483647 : O(n−−√)
n⩽max_longlong : O(log n)
2018/7/18:罕见正常的纪中一天
gcd的和之一
∑i=1ngcd(n,i)
=
∑d|nφ(n/d)×d
证明与例题:
https://blog.csdn.net/mr_wuyongcong/article/details/81104903
2018/7/19:倒数第二天的纪中一天