Codeforces Round 881 (Div. 3)

发布时间 2023-08-18 16:13:19作者: eternal_visionary

比赛链接:https://codeforces.com/contest/1843

A. Sasha and Array Coloring

题意:一个数组,可以任意分成任意组,每组的贡献是组最大值减最小值,求最大总贡献
思路:一组内只有最大值和最小值有用,所以每组只由两个数组成即可,用贪心的思路,依次取出原数组的最大和最小值成组即可

B. Long Long

题意:给一个数组,可以对它进行任意区间操作,使区间内的数都乘-1,问最大的数组总和以及对应的最少区间操作次数
思路:显然最大数组总和就是数组绝对值的和,至于最少操作次数,就是找有几个小于等于0的连续区间,输入的时候用while读入连续区间即可

C. Sum in Binary Tree

题意:一个满二叉树,问从某个结点到根节点的路径上的编号和
思路:由满二叉树的性质,父结点就是子结点除以2,所以一路除过去加和就行

D. Apple Tree

题意:两个苹果在一棵树上,知道两个的初始节点,苹果会往子节点落,问最终到的两个叶节点的组合数
思路:其实就是两个子树的叶节点个数相乘

E. Tracking Segments

题意:如果一个区间中1的个数比0多,说这个区间 is beautiful,有q次change,每次change会使数组中一个数变成1,问在这个过程中使得最早有beautiful的change是哪一个,或者在这个过程中没有一个是beautiful
思路:有一个change,在它之前没有beautiful,在他之后有beautiful,可以用二分来做,二分change的次数用前缀和来查询即可

F题交互题暂不做