AtCoder Grand Contest 034

C

显然,满成绩的重要度为\(r\),空成绩为\(l\)
且最终的成绩为若干是\(X\),一个\(\in(0,X]\),若那个不满的成绩不超过\(b_i\),则选\(l\),否则选\(r\)

D

暴力的做法是二分图然后费用流,但边数太多了
\(\begin{aligned} |x_1-x_2|+|y_1-y_2|&=\max(x_1-x_2+y_1-y_2,x_1-x_2-y_1+y_2,-x_1+x_2+y_1-y_2,-x_1+x_2-y_1+y_2)\\&=\max((x_1+y_1)+(-x_2-y_2),(x_1-y_1)+(-x_2+y_2),(-x_1+y_1)+(x_2-y_2),(-x_1-y_1)+(x_2+y_2))\\\end{aligned}\)
建四个点,与左右两边连,边数\(O(n)\)

E

枚举最终点,令其为根
两个互为祖先的操作显然没意义,将点\(i\)看作在节点\(i\)上有\(dis(rt,i)\)个人,每次将不互为祖先的两个人消掉
有个经典的结论,对于根,令其儿子节点为\(son_i\),令\(d_i\)\(i\)子树的人数,是否满足条件与\(max\{d_{son_i}\},\sum d_{son_i}\)有关
反复递归最大的子树,看其最小能变成多少人

F

可以转为初始为\(i\),多少次转为\(0\)
\(p_i=\frac{a_i}{\sum\limits_{k} a_k}\)

\[f_i = \begin{cases} 0 & i = 0 \\ \sum_{k=0}^{2^n-1} a_kf_{i\operatorname{xor}k} + 1 & i \ne 0 \end{cases}\]

卷积为:

\[(f_0,f_1,\cdots,f_{2^n-1})\operatorname{xor}(p_0,p_1,\cdots,p_{2^n-1}) = (c,f_1-1,f_2-1,\cdots,f_{2^n-1}-1) \]

由于\(\sum p_i=1\),则\(\sum\limits_{i=0}^{2^n-1} f_i=c+\sum\limits_{i=1}^{2^n-1} f_i-1\)
\(c=f_0+2^n-1\)

\[(f_0,f_1,\cdots,f_{2^n-1})\operatorname{xor}(p_0,p_1,\cdots,p_{2^n-1}) = (f_0+2^n-1,f_1-1,f_2-1,\cdots,f_{2^n-1}-1) \]

\[(f_0,f_1,\cdots,f_{2^n-1})\operatorname{xor}(p_0-1,p_1,\cdots,p_{2^n-1}) = (2^n-1,-1,-1,\cdots,-1) \]

故可以解出\(x_0,x_1,\cdots,x_{2^n-1}\)

但是有多个解的,通解为\(x_0+k,x_1+k,\cdots,x_{2^n-1}+k\)
由于\(x_0=0\)\(f_i=x_i-x_0\)

posted @ 2020-08-12 09:09  Grice  阅读(114)  评论(0编辑  收藏  举报