Dashboard - Codeforces Round #772 (Div. 2) - Codeforces
A:给一个数组,任意次操作,每次选择两个不同的整数i,j(1≤i<j≤n) ,将ai替换为x,将aj替换为y。为了不破坏数组,必须保持ai | aj=x | y。求数组和最小
题解:an的异或和
B:给一个数组,最小次操作,每次可以修改一个数,使得这个数组不存在ai>ai-1且ai>ai+1(an和a1默认符合条件)
题解:每次找到一个峰值(ai>ai-1且ai>ai+1)把ai+1改成max(ai-1,ai+1)
C:给一个数组。不超过n次操作,每次选择三个索引x、y、z(1≤x<y<z≤n) 用ay−az替换ax。操作后,|ax |需要小于10^18。使生成的数组不递减。
题解:把a1到an-2都an-1 - an 来替换,特殊处理本来就递减的数组
D:给一个元素不重复且都是正整数的数组a,数组S中的元素x满足下列以下特点之一:1、x=ai 2、x=2*y+1,其中y是S中的元素 3、x=4*y,其中y是S中的元素。求数组S中严格小于2^p的元素个数
题解:记f(p)为2^p内(严格小于)有多少个元素个数,f(p)-f(p-1)就是区间内的元素个数,其中有奇数偶数两种情况。
当a中只有1一个元素时,奇数2k+1,个数为f(p-1)-f(p-2),偶数4k个数f(p-2)-f(p-3),因此总个数为f(p-1)-f(p-3)
当a中还有其他元素时,会存在重合,因此找出区间内所有的a,记忆化搜索,递归找出是否可以由更小的数生成
E:有n辆车,位置各不相同,朝左或者朝右,如果两辆车无论速度如何,在所有时刻都不会共用坐标,我们称之为无关车。如果两辆车无论速度如何,在某个时刻必须共享同一个坐标,我们称之为“命中注定”。给定车与车之间相关还是无关,构造符合条件的方案(位置和朝向)
题解:无关的时候是背向的,相关的时候是相向的,不可能同向。
二染色,枚举每辆车,与它有关的染色(l和r)
拓扑排序定坐标
F:数轴上有n个点,每两个点之间的距离定义成(xi-xj)*(wi+wj),q次查询,li到ri之间的距离最小点对
题解:
当只有点ABE的时候,AB是有可能成为最小点对的
而只有点ABC或者ABD时,AB是不可能成为最小点对的
(即AB之间存在比AB较大点小的点时不符合条件)
从点A往后找,只能找后缀最小值,此时可以拿单调栈维护
二维数点,扫描线+树状数组