感觉之前的CF/AtC乱做记录太杂乱了,就打算每个OJ单开一个文章。

1.CF1707E Replace *3500

年轻人的第一道*3500!爱来自模拟赛T4。赛时的时候啥东西都注意不到,赛后一看题解:就这?

先明确一个大体的思路,状态一共有 $n^2$ 个,我们不可能每个状态都去算,所以我们考虑倍增。

再仔细看看这个二元函数 $f(l,r)$ 有什么性质:

不难注意到 $f(l , r)=\bigcup_{k=l+1}^{r-1}f(k,r)$

进行一个简单的推广 $f^x (l , r)=\bigcup_{k=l+1}^{r-1}f ^ x(k,r)$

然后发现我只用处理形如 $[i,i+1]$ 这样的区间。接下来倍增处理多次操作即可。

2.CF325E The Red Button *2800

人才题目,困难的。首先很显然的是 $n$ 为奇数肯定无解。然后我想到这里就不会了。

然后有一个关键的观察,$i$ 和 $i + \frac{n}{2}$ 的出边是一样的,这就意味着随便怎么样选边必出环。

先随便钦定一种连边方式,然后使用并查集看看是否在同一个环上,如果不在的话就交换出边然后就在一个环上了。

因为只有n条边,所以最后形成的一定是一个环,同时也一定合法。

3.CF1493F Enchanted Matrix *2600

牛的交互题。一个重要的观察是我只需要求出最小的那个 $r$ 和 $c$ 即可。考虑用更少的操作去求。

由于 $r$ 一定是 $n$ 的因数。所以我们可以考虑一个一个地去试除因子。当因子为2时是容易的。奇数因子可以考虑使用字符串 border 的结论去算,只不过花两次的代价而已。

4.CF2030E MEXimize the Score *2300

似乎是套路的数数题。 考虑对于单个的子序列进行求解,记 $X$ 表示子序列, $f(X)=\sum_{i=0}^{n} \min_{j=0}^{i} cnt_j$。

暴力肯定是行不通的,但是我会拆贡献!

按值域枚举,再枚举每个前缀的 $mn$ 是多少,然后DP算算贡献即可。