请问您今天要来点「请问您今天要来点集训吗?」吗?

0.杂谈

今天是兔出题,所以我又爆零了!!!
小朋友不知为何来得很晚,不过并不影响他一来就看漫画。
开题一看 T1 我操,入度和出度都有下限,直接无端联想到网络流。
瞥了一眼旁边的同学发现他也在搜索「有源汇上下界最大流」于是坚定了自己的想法开始搞。
大概开考四十多分钟后兔突然说少了一个条件/px
今天的题面出了至少三个锅,还因为这个延时半小时,窝要次掉小锅兔!
不过问题不大,后来口胡出一个建图,然后传统艺能是被 memset(hd,-1,sizeof(hd)) 卡了很长时间。
写了个不知道对不对的数据生成器和 checker,拍了几组没什么大问题就滚去 T2 了。
T2 看起来是个毒瘤题,然后决定先打暴力,发现高精不会了/px
T3 是大毒瘤啊!连暴力都不会打!于是先看看部分分!
最后测出来发现网络流挂惨了,不过听说有重测。
旁边的同学网络流也挂惨了(只不过他是 WA 我是 TLE(
重测完听说 suxxsfe 写的 Dinic 分没变,那么我也差不多了(爬爬爬)。

1.简易题解

A

给定一个无向连通图(无自环),请你给每条边确定方向,使得 \(\text{ind}(i)\ge x_i,\text{outd}(i)\ge y_i\)(其中 \(\text{ind},\text{outd}\) 为入度和出度)。输出任一种方案。
由于兔临时补了 \(0\le x_i,y_i\le1\) 的条件,所以网络流理所应当被卡了。据说正解是删一度点求欧拉回路。

B

给定 \(n\) 个正整数 \(b_i\) 和一个含问号的数字 \(a\),每个数字有权值 \(c_i\)。定义 \(f(x)\)\(x\) 的十进制表示中的数字权值之和。请你计算对于所有可能的填上问号后的 \(a\)\(\max\left\{\sum\limits_{i=1}^n f(b_i+a)\right\}\) 是多少。
考虑数位 dp。设 \(f_{i,S}\) 为枚举到后 \(i\) 位、有进位的集合为 \(S\),似乎爆炸了?
但是很明显能进位的集合并不是 \(O(2^n)\) 的,而是一个 \(O(n)\) 的后缀,所以我们排序后再做就行了。

C

给定一棵有根树,根节点有一枚棋子。Alice 和 Bob 轮流移动这枚棋子,每次移动的距离应单调递增,不能移动的一方输。现在任意砍掉一些子树,求有多少种砍子树的方案使得 Bob 胜利。
先考虑赢的条件。发现如果一个人(第一次)跳到了直径的某一个端点,那么这个人就死了,因为另一个人可以跳到另一个端点。
并不会长链剖分,先咕着。

2.CF 杂题选讲

1

题面见 CF724E。
这题的网络流做法是显然的,但是数据范围不允许,我们考虑转化成别的东西。
学最小割的时候我们将最小割转化为了最大流,现在我们要将最大流转化为最小割
由特殊的连边方式(从小到大)可以考虑 dp。设 \(f_{i,j}\) 为前 \(i\) 个点和源点连了 \(j\) 个,那么 \(f_{i,j}=\min\{f_{i-1,j-1}+s_i,f_{i-1,j}+p_i+j\times c\}\)

2

题面见 CF908H。
首先发掘一下性质,发现 \(g_{u,v}=A\) 其实是说 \(u,v\) 在同一个 SCC 里,\(g_{u,v}=X\) 是说它们不在同一个 SCC 里。
先把能缩的缩在一起,我们想让边数最小,那么一定让所有 SCC 都是简单环,环之间连边并且 SCC 的数量尽量少。
而点数大于二的 SCC 少于 \(23\) 个,这时它就比较像一个靠谱的状压题了。
\(f_{i,S}\) 表示连接了 \(i\) 条树边后集合 \(S\) 能否连通,那么显然有 \(f_{i,S}=\bigcup\limits_{S_1\cup S_2=S}f_{i-1,S_1}f_{0,S_2}\),这个东西可以 FWT 优化。
优化完我们发现只要最后一项的系数,所以不用 IFWT 直接计算系数即可。

posted @ 2021-05-05 20:45  ajthreac  阅读(116)  评论(0编辑  收藏  举报