A
上到下一定会有边界存在
直接扫一遍
http://paste.ubuntu.com/25382615/
B
二进制问题
不足2^k的时候多余的部分用k-1位表示
可以观察到这一部分的性质是直接加2
队友的代码:
http://paste.ubuntu.com/25382619/
C
D
E
并查集
连起来然后把存在的dna记下来
队友的代码:
http://paste.ubuntu.com/25382673/
F
G
可以看成对x质因数分解
尽量猜两个素数的乘积就是最优策略
http://paste.ubuntu.com/25382780/
H
I
J
K
考虑取带权重心
就是很多棵子树 并且每棵子树内的叶子节点个数不超过一半
那么按照那个顺序连 每一对点之间的路径都是过重心的
自然就能覆盖所有的边
考虑从起点出发 走到重心之前
就是在抓走重心子树后的一棵子树里面打转
走到重心的时候就会依次遍历其他几棵子树
最后回到起点所在子树再晃悠一下
实际上只有一棵子树被拆成了前后两段
然后子树大小都是不超过一半的
http://paste.ubuntu.com/25382925/
L