2017-Sp328-team2
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
== 流水账 ==
=== chenjb ===
=== oipotato ===
=== subconscious ===
== 题解 ==
* A:推式子计算。
* B:奇数直接L型,偶数,2显然无解,否则把n-1的构造加上(2,2)。
* C:枚举对称轴上有几个点,最多sqrt个,两边对称是限定数量的拆分数,可以nsqrtn求,dp。
* D:只有k个起点有用,k^2^求出后缀数组,直接算。
* E:统计每种信件涉及到的最深回信个数,求得最小信件数比较即可。
* F:预先计算大小为i的联通块里,2^i^个子树出现次数的和,容斥计算之后除以贡献即可。
* G:搞个栈随便匹配。
* H:二分最大值那个人分到多少。
* I:询问1 1 2 2...n/2 n/2,从前往后扫,每次遇到重复数字就能断定一个数组,这样做一遍就能确定一半的数字,最多再做一次,问下第n个数组。
* J:对于a到b,显然a要先达到他们之间最高的管子的高度,接下来就是这根管子到b这一段再做相似的事情,将管子高度从小到大排序后,建kruskal重构树,a到b的答案就是b往两者lca跳的过程中,每一个a方向的子树*当前点的高度值,注意到a另一边有可能漏过去的水也会被这样统计进去,所以是正确的;用跳表或者动态链分治维护都可以。
* K:
* L:先分成每一块42连红色的边,再分成每一块42*42连蓝色边,再连绿色边(42*42*42>n)。
流水账
chenjb
oipotato
subconscious
题解
- A:推式子计算。
- B:奇数直接L型,偶数,2显然无解,否则把n-1的构造加上(2,2)。
- C:枚举对称轴上有几个点,最多sqrt个,两边对称是限定数量的拆分数,可以nsqrtn求,dp。
- D:只有k个起点有用,k2求出后缀数组,直接算。
- E:统计每种信件涉及到的最深回信个数,求得最小信件数比较即可。
- F:预先计算大小为i的联通块里,2i个子树出现次数的和,容斥计算之后除以贡献即可。
- G:搞个栈随便匹配。
- H:二分最大值那个人分到多少。
- I:询问1 1 2 2...n/2 n/2,从前往后扫,每次遇到重复数字就能断定一个数组,这样做一遍就能确定一半的数字,最多再做一次,问下第n个数组。
- J:对于a到b,显然a要先达到他们之间最高的管子的高度,接下来就是这根管子到b这一段再做相似的事情,将管子高度从小到大排序后,建kruskal重构树,a到b的答案就是b往两者lca跳的过程中,每一个a方向的子树*当前点的高度值,注意到a另一边有可能漏过去的水也会被这样统计进去,所以是正确的;用跳表或者动态链分治维护都可以。
- K:
- L:先分成每一块42连红色的边,再分成每一块42*42连蓝色边,再连绿色边(42*42*42>n)。