tg 31 题解

其实赛时稍微多留个心眼取个模
直接就\(rk10\)

CaO

T1

来自\(k\color\red{iritokatuzo}\)哥哥的讲解
把所有的无向边换成两条有向边
于是就是删两个有向边变欧拉图的方案
判欧拉图的充要条件:
1.连通 2.度数为奇数的点数为\(0\space or\space 2\)
显然现在每个点的度是个偶数(因为每个边被拆成\(2\)条算了于是显然要乘个\(2\))
由于图上有自环,于是对删的两条边分类讨论
1.两个自环
自环显然可以对一个点贡献2个度
于是显然删不删没有影响
显然可以想删多少删多少啦
这一部分答案是\(C^{2}_ {size},size\)表示自环数量
2.一自环一边
自环还是随便删
然后一条边也是随便删,
反正就是会多两个度数为奇的点,
照样随便删,问题不大
这一部分答案就是\(size\cdot(m-size),size\)还是自环数目
3.两条原图边
如果删两条非公共顶点的边
显然会有\(4\)个点的度\(-1\)变成奇数
显然就不是欧拉图了!
于是只能删公共顶点的边
考虑到连通性问题,
这两条边只能是一入一出
再考虑下所有顶点数就好了
这一部分的答案就是\(\sum\limits^{n}_ {i=1} C_{dep_{i}}^{2},dep_i\)表示无向图上每个点的度

T2

暴力出奇迹
赛时一直在想正解有没有可能和值域无关
显然是假的
于是凭借答案值域小吃了一大波分
于是在远离正解的道路上越走越远,
最后拿个\(90\)诚意满满,简直活到爆
正解:
就是显然的可以转化成这个

\[\sum\limits^{n}_ {i=1}\lceil \frac{a_i}{d} \rceil \cdot d -a_i \leq k \]

最大化\(d\)
不是很慌,先移个项:

\[\sum\limits^{n}_ {i=1}\lceil \frac{a_i}{d} \rceil \cdot d \leq k+\sum\limits^{n}_ {i=1}a_i \]

对于\(\lceil \frac{a_i}{d} \rceil \cdot d\)
考虑数论分块
因为\(∑\lceil\frac{a_i}{d}\rceil\)满足区间单调性,
若一个区间左端点满足条件,那么整个区间一定满足条件,
若右端点不满足条件,那整体一定不满足,
而一个区间的最优解,一定是右端点,
因此不需考虑中间交点。

T3

计数\(DP\)
定义\(f_{i,j}\)\(i\)大小的超级树路径\(j\)的方案数
转移:
image
image
注意好边界和限制条件即可

T4

一个\(LCA\)
\(k\)次方直接维护即可,反正不大
避免时空复杂度爆炸,维护前缀和
然后就是非常常规的差分
倍增\(LCA\)应该都会,不讲了

posted @ 2022-08-17 18:59  2K22  阅读(34)  评论(0)    收藏  举报