一句话总结:T1 不会,T2 多 \(\log\) 而且写挂了,T3 T4没看,56分离场。
部分题解
T1. 异或(xor)
推了一大堆没用的结论,没想到分治。
题解:从高位到低位处理,对于每一层,如果当前这段区间内最高位既有 \(0\) 又有 \(1\),那么 \(0\) 的部分一定全都是最高位是 \(1\) 的,\(1\) 的部分同理。这时如果两边有相同元素则无解,否则递归处理。另一种情况是最高位全部相同,这时左右的 \(p\) 一定对应相等,问题规模缩小一半,最后答案乘 \(2\) 即可。
T2. 图论(graph)
写了一个 \(O(n^2\log^3 n)\) 的做法,只能得到 \(88\) 分,而且因为多测没清空挂成了 24。想过 \(O(n^3)\) 但是不会找最大值,事实上这可以用势能分析什么的均摊 \(O(1)\)。
\(O(n^3)\) 题解:对于每条边往外扩展,每次找两边度数加起来最大的边。这个可以开 \(2n\) 个链表,就可以支持 \(O(1)\) 加入和删除。对于求最大值可以维护一个 \(cur\) 表示当前可能的最大值,每次看如果这个链表是空的就减小,直到非空。扩展的时候把他和新的度数和取个 \(\max\)。
T3. 视频(video)
没有想。
题解:二分答案,搞出他的解码顺序之后类似双指针的模拟。注意一下细节。
T4. 交换(swap)
没有想。但是补题的时候自己能秒。
题解:从小到大枚举,对于每个数发现把他放到前面还是后面都不会影响更大的数的答案,所以贪心的用树状数组维护一下每次两边的最小值即可。
标签:10,2022NOIPA,题解,最大值,链表,联测 From: https://www.cnblogs.com/CelticBlog/p/16800927.html