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 $ 即可