题号 | 名称 | 难度定位 | 知识点 |
---|---|---|---|
A | Distance | 签到 | 脑洞 |
B | 字典序最小的中序遍历 | 签到 | 贪心 |
C | 序列 | 中档题 | 容斥 |
D | Air Hockey | 中档题 | 简单计算几何 |
E | 品酒大会 | 中档题 | 后缀自动机 |
F | 白云的树 | 难题 | DDP |
Distance
分别维护 − j 2 + a j 2 -j^2+a_j^2 −j2+aj2和 − j 2 − a j 2 -j^2-a_j^2 −j2−aj2的最大值
字典序最小的中序遍历
贪心,如果交换左右子树之后更好,就交换
序列
分析清楚题目要求之后,就是一个很经典的容斥。
Air Hockey
把其中一个冰壶作为参考系
品酒大会
对SAM的Parent树上的每个节点对应的endpos集合,求出集合大小、集合中 a i a_i ai的最大值、最小值、次大值、次小值
白云的树
dp转移可以看作多项式卷积,假设 u u u是根节点, v v v是其儿子。 F u ( x ) = 1 + f 1 x + f 2 x 2 + f 3 x 3 + . . . + f 10 x 10 F_u(x)=1+f_1x+f_2x^2+f_3x^3+...+f_{10}x^{10} Fu(x)=1+f1x+f2x2+f3x3+...+f10x10。
dp转移式: F u ( x ) = 1 + ( v a l u x ) F v 1 ( x ) F v 2 ( x ) F v 3 ( x ) . . . F_u(x)=1+(val_{u}x)F_{v_1}(x)F_{v_2}(x)F_{v_3}(x)... Fu(x)=1+(valux)Fv1(x)Fv2(x)Fv3(x)...
修改:暴力多项式求逆,然后一路改到根节点上去
查询:可以进行换根DP
换根的递推式:
F v ′ = ( F u − 1 F v + 1 ) ( F v − 1 ) + 1 F'_v = ( \frac{F_u-1}{F_v} + 1 )( F_v - 1 ) + 1 Fv′=(FvFu−1+1)(Fv−1)+1
题目链接
A题:https://ac.nowcoder.com/acm/problem/14268
B题:https://ac.nowcoder.com/acm/problem/14506
C题:https://ac.nowcoder.com/acm/problem/14648
D题:https://ac.nowcoder.com/acm/problem/14115
E题:https://ac.nowcoder.com/acm/problem/17885
F题:https://ac.nowcoder.com/acm/problem/14946
hint:E题数据规模 n ≤ 3 × 1 0 5 , ∣ a i ∣ ≤ 1 0 9 n\le 3\times 10^5, |a_i| \le 10^9 n≤3×105,∣ai∣≤109