高分 CF 题解

本博客写我做的 CF* 3000+ 的题目,这部分题目大多在我能力以外且颇有价值。

upd:不鸽了不鸽了!

CF1270H Number of Components

还是套路地考虑代表元,发现其作为代表元的条件就是前面的数正好就是最大的数。于是我们的任务变为单点修改,然后计数这样的点的个数。

接下来的操作就比较神奇:我们考虑 \(01\) 规划,那么条件变为 \(1\) 形成一个前缀,换而言之就是 \(01\)\(10\) 的个数恰好为 \(1\),这样我们就可以用线段树维护了。

CF1147E Rainbow Coins

独立做出来的,应该说是非常简单的一道题。

首先我们肯定用两次询问得到相邻之间的状态,这时问题就变为了很多段,然后相邻颜色不同。

我们发现因为只有三种颜色,我们跳一个询问,若相同那么很好,若不同的话则说明这三个互不相同,那也很好。

于是我们再花两次询问得到跳一个的答案,就可以推出所有的颜色。

CF1286D LCC

独立做出来的,应该说是非常简单的一道题。

我们发现只有相邻相交才可能成为答案,于是答案的数量就只有 \(O(n)\) 个,于是考虑枚举。

我们容易枚举答案后 \(O(n)\)\(dp\) 计算概率,考虑优化。

我们发现,每次将答案调小其实是释放了一些转移,于是用矩乘,线段树维护。

CF708E Student's Camp

首先容易想到暴力的 \(dp\),然后考虑把贡献记到右端点上,那么后面的是就顺理成章了。

CF1119H Triple

其实跟黎明前的巧克力非常像的啦~

首先考虑将每个操作变为 \((a_i,b_i,c_i)\to (0,b_i\oplus a_i,c_i\oplus a_i)\),最后再整体移位 \(\oplus a_i\)

这样最后每一位就只可能是 \(x+y+z,x-y+z,x+y-z,x-y-z\),可以通过总量、\(y\) 的符号、\(z\) 的符号、\(y/z\) 符号的异同列出四个等式解出来。

CF582D Number of Binominal Coefficients

考虑 \(\text{Kurmur}\) 定理:\(\binom{a+b}{a}\)\(p\) 的次数为 \(p\) 进制下 \(a+b\) 的进位次数。

那么我们考虑一个数位 \(dp\)\(dp_{i,j,0/1,0/1}\) 为考虑到第 \(i\) 位,已经进了 \(j\) 位,是否小于限制,下一位是否进位。转移有亿些细节。

CF1028G Guess the number

这题很骚,很气人。

很容易想到一个做法,我们先询问 1 10000,小于再分别询问 21,4,2 这样子,大的就分叉询问。

我们发现这好像是差不多的样子,但是事实上那个奇怪的数据总能在最后找到一个长度为 10001 的段,然后就寄了。

事实上并不是全部平均分就是最优的。我们定义 \(dp_{i,j}\) 表示在第 \(j\) 轮询问 \(i\) 个数的最大范围。

容易发现这是好转移的,事实上这也是可以过的。

CF587D Duff in Mafia

简单 \(\text{2-sat}\) 题。按题意二分答案然后跑 \(\text{2-sat}\) 即可。代码写一年。

CF568E Longest Increasing Subsequence

马上更新~

posted @ 2022-04-11 22:33  syzf2222  阅读(125)  评论(0编辑  收藏  举报