800分的题目都做不出..
官方题解略长..告辞..
A - Thumbnail
水签到。
1 |
|
B - Sum AND Subarrays
题意
找 k 个数字使其 and 之和最大
分析
按位贪心,如果这位上 1 的个数大于 k,就把这位上是 0 的数字全部删掉,再处理下一位,小于 k 就跳过。
1 |
|
C - k-DMC
题意
给定长为 N 的字符串 S,Q 个询问,每个询问给一个 k,要你找三元组(a,b,c)的个数,要求
- S[a]='D', S[b]='M', S[c] = 'C'
- $c-a < k$
数据范围 $N \le 1e6, Q \le 75$
分析
看复杂度就知道$O(NQ)$挺合理。
枚举 'C',这样每个询问变为$O(1)$求区间内 ('D','M') 的对数。
预处理每个数字前面 'D' 的个数和每个数字前面 'M' 的个数,以及每个数字前 ('D','M') 对数,这样就可以做到$O(1)$的区间查询了。
1 |
|