ABC265
Manhattan Cafe
设 d p i [ j ] [ k ] dp_i[j][k] dpi[j][k]表示考虑前 i i i维,其中 D 1 − D 2 = j D1-D2=j D1−D2=j, D 1 + D 2 = k D1+D2=k D1+D2=k的方案数
设 d = ∣ p i − q i ∣ d=|p_i-q_i| d=∣pi−qi∣,转移如下:
1.1 1.1 1.1若 p i ≤ x ≤ q i p_i\le x\le q_i pi≤x≤qi, d p i − 1 [ j ] [ k ] → d p i [ j − d ] [ k + d ] ∼ d p i [ j + d ] [ k + d ] dp_{i-1}[j][k]\to dp_i[j-d][k+d]\sim dp_i[j+d][k+d] dpi−1[j][k]→dpi[j−d][k+d]∼dpi[j+d][k+d]
1.2 1.2 1.2若 x < p i ≤ q i x<p_i\le q_i x<pi≤qi, d p i − 1 [ j ] [ k ] → d p i [ j − d ] [ k + d + 2 + 2 y ] dp_{i-1}[j][k]\to dp_i[j-d][k+d+2+2y] dpi−1[j][k]→dpi[j−d][k+d+2+2y]
1.3 1.3 1.3若 p i ≤ q i < x p_i\le q_i<x pi≤qi<x, d p i − 1 [ j ] [ k ] → d p i [ j + d ] [ k + d + 2 + 2 y ] dp_{i-1}[j][k]\to dp_i[j+d][k+d+2+2y] dpi−1[j][k]→dpi[j+d][k+d+2+2y]
注意到转移其中一维是定值,可以维护其差分序列,做到转移 O ( 1 ) O(1) O(1),总复杂度 O ( n d 2 ) O(nd^2) O(nd2)。
012 Inversion
sb数据结构
相信大家都会吧
AGC012
Colorful Balls
若原序列中位置 i i i和位置 j j j能交换那么连一条边 ( i , j ) (i,j) (i,j)
显然同一连通块内可以任意排列 并不显然 ,因为不在同一连通块可以看作是独立的,对于同一连通块可以归纳法证明。
并查集维护连通性即可。
Tautonym Puzzle
考察序列前半部分是 1 ∼ n 1\sim n 1∼n的排列 p p p,后半部分是 1 ∼ n 1\sim n 1∼n。
问题转化为左边上升子序列的数目。设空串合法,考虑从末尾插入一个数那么数目乘 2 2 2,从开头插入一个数那么数目加 1 1 1。最终序列长度为 4 log n 4\log n 4logn。
Splatter Painting
简单题。倒序操作,记录从每个点出发能扩散的最远距离,显然是递增的,复杂度 O ( m d ) O(md) O(md)。
AtCoder Group Contest
简单题。显然从大到小排序,然后隔一个位置选一个即可。
Camel and Oases
我会转化!!
问题转化为把原序列划分成若干区间,区间内相邻距离不超过 V 2 i \frac{V}{2^i} 2iV。
然后就比较简单了。
Prefix Median
dp神题啊。
考虑逆序构造。每次删除两个数后中位数会不动或移动到相邻位置,因此合法的
b
b
b序列应该满足:
1.1
1.1
1.1对于任意
i
∈
[
1
,
n
−
1
]
i\in [1,n-1]
i∈[1,n−1],不存在
j
<
i
j<i
j<i满足
b
i
<
b
j
<
b
i
+
1
b_i<b_j<b_{i+1}
bi<bj<bi+1或
b
i
+
1
<
b
j
<
b
i
b_{i+1}<b_j<b_i
bi+1<bj<bi
1.2
1.2
1.2对于任意
i
∈
[
1
,
n
]
i\in [1,n]
i∈[1,n],满足
b
i
∈
[
i
+
1
,
2
n
+
1
−
i
]
b_i\in [i+1,2n+1-i]
bi∈[i+1,2n+1−i]
首先对于连续的 a i a_i ai只保留离中位数最近的那一个。
考虑从当前位置向左挪或向右挪时把跨过的全部删掉,不能作为后续选择,并且其限定的区间每次会向左和向右扩展一位,那么我们设 d p [ i ] [ L ] [ R ] dp[i][L][R] dp[i][L][R]表示填了 i ∼ n i\sim n i∼n,当前位置左边有 L L L个可以选择,右边有 R R R个可以选择的方案数。转移时枚举往哪边跳,复杂度 O ( n 4 ) O(n^4) O(n4)。