CF 漫游(二)

CF 漫游(二)

CF1244E

二分答案,然后当前枚举的答案是 $ x $,我们枚举 $ a_i $,设值域的开始是 $ a_i $

然后就是经典套路,维护一下前缀和,答案就求出来了

CF242E

简单题,每一位开一个线段树,只需要区间 $ 1 $ 变 $ 0 $ 和 $ 0 $ 变 $ 1 $,区间求和即可

CF86D

考虑莫队,维护出现的次数,然后做完了

CF877E

对 $ dfs $ 序建树,写一个线段树维护,和上面一个题一样

CF367C

个人认为这个题很好,首先按照 $ w $ 排序,代价大的优先

我们考虑两个数需要相邻就连边,然后转换成了一张完全图,这个题就是在完全图上跑欧拉路

然后我们需要归纳当选择 $ x $ 个数的时候,需要经过多少点,然后如果经过的点的数量 $ \le n $,就合法,统计答案即可

当 $ x $ 是奇数的时候,因为是完全图,所以每个点的度数是 $ x - 1 $,是偶数,一定存在欧拉路,因为一条边的贡献是 $ 2 $,所以经过 $ \frac{x \times (x + 1)}{2} $ 条边,点数要 $ +1 $

当 $ x $ 是偶数的时候,如果是 $ 2 $,用上面的公式,否则可以先让每个点少跑一条边,这样把原图拆成两个不相连的欧拉路

这样第一遍跑经过 $ \frac{x \times (x - 2)}{2} + 1 $ 个点,第二次经过 $ \frac{x}{2} $ 个点

因为跑完第一遍,第二遍跑的时候点是以点对的形式出现的,所以这些点对需要连起来,再加上 $ \frac{x}{2} - 1 $ 即可

CF776D

考虑 $ 2-SAT $,如果开着灯,那么两个钥匙要么都用,要么都不用,否则一个用一个不用,对钥匙用和不用拆成两个点跑 $ 2-SAT $ 即可

posted @ 2024-08-19 19:36  __Tzf  阅读(5)  评论(0编辑  收藏  举报