CF Round#953 Div.2
A. Alice and Books
题意
:给定\(n\)个数,分为两堆,每堆取编号最大的,求最大的和为多少。
题解
:答案即为前\(n-1\)个数中的最大值加上第\(n\)个数。
B. New Bakery
题意
:卖\(n\)件货物,可以选定一个\(k\),前\(k\)件卖出的货物中的第\(i\)件以\(b-i+1\)的价格卖出,其余按照固定价\(a\)卖出,求最大获利。
题解
:想办法卖高价,\(k \leq b
- a\),考虑一下边界条件。
C. Manhattan Permutations
题意
:定义排列的曼哈顿距离为\(\sum |p_i - i|\),构造距离为\(k\)的\(n\)的排列。
题解
:手玩一下,曼哈顿距离一定为偶数,且最大的情况为倒序排列。考虑构造,从正序排列开始,如果\(k\)够大则交换首位元素,否则交换首元素与某一中间元素停止。这样的交换方法不会对序列中间的距离产生影响,可以方便地缩小问题的规模。
D. Elections
题意
:\(n\)个人选举,每个人有\(a_i\)选民,还有\(c\)个不定选民会投给编号最小的候选人,当平票时选编号最小的当选。你可以选择一部分候选人出局,他们的选民会成为不定选民,问每个候选人当选最少需要出局多少人。
题解
:考虑胜选的情况:如果不需要不定选民投给你,那么就要满足\(a_{x} > a_{1} +
c\),否则就一定需要不定选民,那么\([1,
x)\)的候选人一定要出局,若还不够再考虑从后面贪心选大的出局。
E. Computing Machine
题意
:给定两个01串\(s,
t\),若\(s_{i}=s_{i+2}=0\)则可使\(b_{i}=1\),若\(b_{i}=b_{i+2}=1\)则可使\(a_{i}=1\),多次查询区间\(l,
r\),对这个区间的字串进行操作最多可得到多少个\(s\)串中的1。
题解
:字串只有边缘会受到影响,中间的结果与两个串直接操作没区别,边缘单独判断一下即可。
F. Large Graph
题意
:给定一个数组\(a\),循环右移得到\(n * n\)矩阵\(b\),由矩阵\(b\)生成一张图,每个点代表矩阵中一个元素,两个点有边当两点在矩阵中曼哈顿距离不超过\(k\),且两个点在矩阵代表的值不互质,求图中连通块的数量。
题解
:当\(k \geq
2\)时,斜着的条状带构成了\(2n -
1\)个连通块,问题退化为一维,那么对于每一个质因数,添加连向最近的公共因子的边,这样可以控制每一个质因子的边的数量不超过\(O(N)\),直接搜索即可。稍微注意一下当\(a_i =
1\)时,每个点都是独立的连通块,然后\(ans\)是\(O(n^2)\)级别的,会暴int,最后质数只要枚举到根号级别就可以,剩下的做个map搞一下。