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