20241012
感觉都不是很好做
难不成是贪心专场?
T3
考虑线段树上维护某些信息
维护一个数组,表示从左往右或从右往左依次出现的字符为什么
这样子只需要记录30种不同的数即可
因为n只给到 $5\times 10^4$ ,所以很容易想到双log做法
我们把其中一个log换成 k 即可得到 $O(nklogn)$ 的做法
然后就过了?
希望能过
T1
感觉像贪心,但是死活猜不出结论
不妨设数量少的那一边在下方
设 $f_{i,j}$ 表示当前选到第i个下方点,第j个上方点的最小权值
那么有转移
$f_{i,j}=\min_{k<j} f_{i-1,k}+ \mid a_j-a_i \mid$
发现当 $j$ 固定时一切都固定了
但这样是拿不了满分的
算了就这样吧,说不定接下来还有贪心结论
草,看错题了
T2
感觉好像在哪里见过
根据相对运动的观点,一个字母往左移等价于另一个字母往右移
所以最后面一定存在一种方案为安排好左边再向右拓展
两个相同的字符不会交换,因为那样子没有意义
区间dp?
设 $f_{i,j,a,b}$ 表示 $[i,j]$ 这个区间的左右两端字符为 a,b 的最小操作步数
感觉不如T4
T4
考虑枚举区间中最大的数
问题就变成了“有多少个经过某点的区间满足异或起来比一个定值小”
容易想到前缀和,就变成了“有多少个包含某点的两点满足异或起来比一个定值小”
设中点为 $mid$ ,左端点为 $l$ ,右为 $r$
那么答案就是
$\sum_{l \le i <mid}\sum_{mid\le j \le r}[d_i\ xor\ d_j \le a_{mid}]$
主席树?可持久化trie?
容易想到枚举二进制位
完了,考的最炸的一集
这下死光光了
积攒运气吧
哭哭
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 mygr main()!