2023NOIP A层联测30 总结
2023NOIP A层联测30 总结
\(T1\) 给定一个序列 \(a\) ,有 \(m\) 次操作\(l , r , v\) ,表示将 \([l , r]\) 内的每个 \(a_i\) 变为 \(\max (a_i , v)\)
\(n \le 10^5 , m\le 10^7\)
看到 \(n\le 10^5 , m \le10^6\),赶紧打一个 \(O(m\log_2n)\) 的线段树做法,在看到 \(20pts\) 的 \(l = 1\) ,再搞个差分,检查一下就到 \(9:30\) ,于是马上看后面的题目。
正解是 \(ST\) 表 \(O(1)\) 修改,\(O(n\log_2n)\) 查询。
\(T2\)
有一个 \(n\) 个点 \(m\) 条边的无向图,定义一条路径的大小就是这条路径上的每一条边的权值的异或和,求最大的路径权值。
\(n , m \le10^5\)
打了一个不知道时间复杂度的 \(dfs\) ,想水 \(20pts\)。
正解是线性基加上 \(trie\) 树。
\(T3\)
有一个矩形,其中有 \(k\) 个点。现在要以这每个点为斜边中点,构造 \(k\) 个斜边长度相同的等腰直角三角形,且这些三角形既不相交也不超出矩形范围,求最大的斜边长度。
\(k \le 200 , 0\le W , H \le 10^9\)
想水 \(k \le 4\) 的数据点,想到了二分,但是太麻烦了,赶紧切。
\(T4\)
有一个长度为 \(n\) 的字符串 \(s\) 只包含 \(A , B\) ,现在要选出 \(k\) 组 \(A,B\) ,要求:
- 每组 \(A , B\) 数量相同。
- 每组的 \(A\) 在原字符串中的位置应该在 \(B\) 左边。
现在你可以交换若干次相邻的两个字符,期望最小的交换次数使得满足题目要求。
\(n \le 10^6 , 1\le K \le N\)
这个题后面没时间想了,但是考后发现有 \(16pts\) 还是比较好骗的,比 \(T3\) 的部分分好打。
总结:今天还是没有把该拿的分拿到,看到 \(T3\) 有点难下手后,应该马上看能不能 \(T4\) 中再水一点分,而且 \(T2\) 还是可以再深入思考一下做法,可能可以把 \(40 pts\) 想到。