11月27日考试 题解

CF场,自闭了。

T1

给定$n$,若对于$\forall i,j\in[1,n]$,有$|i-j|$整除$n$,那么$i$和$j$必须属于同一种颜色。问有多少颜色存在。

结论题。若$n=p^k$($p$为质数),那么答案为$p$;否则答案为$1$。

T2

原题:CF525B

可以将路径分为上行和下行,然后发现是个区间乘区间求和,直接树剖即可。注意判断路径两端点相同的情况……

T3

原题:CF875F

可以将一个$b$对应的两个$a$连边,如果选了这条边就看成选了这个$b$。那么最后形成的是边权和最大的基环树或者树形成的森林。然后可以kruskal做了。具体实现要讨论一下当前要合并的两个点$x,y$是否在同一集合且所在子树是否是基环树。

T4

原题:CF1292C

首先有:

$\large S=\sum\limits_{1\leq u<v\leq n} \mathrm{mex}(u,v)$

$ \large = \sum\limits_{x=1}^n \sum\limits_{\mathrm{mex}(u,v)=x} x$

$\large =\sum\limits_{x=1}^n \sum\limits_{\mathrm{mex}(u,v)\geq x} 1$

也就是说对于每个$x$要统计至少包含了$0$到$x-1$所有数的路径数量。假设现在已经放了$0$到$x-1$,现在考虑放$x$。若想让答案变大,那么$x$一定放在同一条路径上。发现最后放置的数形成一个单谷序列,然后可以考虑DP。设$dp(u,v)$表示将$0$到$l-1$放在$<u,v>$上答案最大可能值,那么有转移$dp(u,v)=\max(dp(u,p_{u,v}),dp(v,p_{v,u}))+s_{u,v}\times s_{v,u}$,其中$p_{u,v}$表示以$u$为根时$v$的父亲,$s_{u,v}$表示以$u$为根时$v$子树大小。

posted @ 2020-11-27 16:05  我亦如此向往  阅读(100)  评论(0编辑  收藏  举报