A.BBQ Easy
排序后类似于括号匹配,使得左括号的价值总和最大, n 2 d p n^2dp n2dp即可。
upd.智障了,直接贪心相邻两个一组即可。
B.Mysterious Light
实际上就是用顶角为 60 ° 60\degree 60°平行四边形的短边分割,迭代剩下的小平行四边形即可。
设 f ( x , y ) f(x,y) f(x,y)表示长边为 x x x,短边为 y y y内部切割的代价: f ( x , y ) = f ( y , x % y ) + 2 ⋅ ⌊ x y ⌋ ⋅ y f(x,y)=f(y,x\%y)+2·\lfloor\frac{x}{y}\rfloor ·y f(x,y)=f(y,x%y)+2⋅⌊yx⌋⋅y,底层为 f ( x , 0 ) = − x f(x,0)=-x f(x,0)=−x。
a n s = f ( x , n − x ) + n ans=f(x,n-x)+n ans=f(x,n−x)+n。
C.Shorten Diameter
n
≤
2000
n\leq 2000
n≤2000明示
n
2
n^2
n2枚举中点删去距离
>
⌊
K
2
⌋
>\lfloor\frac{K}{2} \rfloor
>⌊2K⌋的点再取
m
i
n
min
min。
p.s.
K
K
K为奇时中点是一条边。
D.Arrays and Palindrome
很妙的构造题
问题等价于:求解是否存在一种将回文串对应字符相连的方式(所有点的度数 ≤ 2 \leq 2 ≤2),使得图连通。
连通图必然是一个环或者链,所以若存在至少三个 A i A_i Ai为奇则无解。
分情况讨论:
- m = 1 m=1 m=1时,将前 ⌊ n 2 ⌋ + 1 \lfloor\frac n2\rfloor+1 ⌊2n⌋+1个字符划分成一个串,其余划分成一个串。分 n % 4 n\% 4 n%4的值画图讨论一下就可以证明。
- A i A_i Ai均为偶时,按 [ 1 , A 1 + 1 ] , [ A 1 + 2 , A 2 + 1 ] , . . . , [ A m − 2 + 2 , A m − 1 + 1 ] , [ A m − 1 + 2 , n ] [1,A_1+1],[A_1+2,A_2+1],...,[A_{m-2}+2,A_{m-1}+1],[A_{m-1}+2,n] [1,A1+1],[A1+2,A2+1],...,[Am−2+2,Am−1+1],[Am−1+2,n]划分。起点终点分别是首尾字符串的某个中心。
- 存在至多 2 2 2个 A i A_i Ai为奇时,将为奇的 A i A_i Ai放在首尾(中心作为链的一段)。
E.BBQ Hard
i , j i,j i,j搭配的方案数为 ( A i + B i + A j + B j A i + B i ) {A_i+B_i+A_j+B_j\choose A_i+B_i} (Ai+BiAi+Bi+Aj+Bj),等价于从 ( − A i , − B i ) (-A_i,-B_i) (−Ai,−Bi)只能向上/右走到 ( A j , B j ) (A_j,B_j) (Aj,Bj)的方案数。
由 N ≤ 200000 , A i , B i ≤ 2000 N\leq 200000,A_i,B_i\leq 2000 N≤200000,Ai,Bi≤2000可知需要把搭配拆成枚举定点直接所有点和它搭配的贡献。 d p [ i ] [ j ] dp[i][j] dp[i][j]表示走到 ( i , j ) (i,j) (i,j)的方案。最后除去多算的贡献。
F.Wide Swap
只会逐位迭代的做法。
实际上用到了比较套路的转换:设 b a i = i b_{a_i}=i bai=i,则序列 b b b中相邻位置差值 ≥ k \geq k ≥k的可以 s w a p swap swap,且 b b b的字典序等价于 a a a。
对于
i
<
j
,
∣
b
i
−
b
j
∣
<
k
i<j,|b_i-b_j|<k
i<j,∣bi−bj∣<k,相对位置是固定的,考虑连边拓扑排序。
边的量级是
n
2
n^2
n2的,考虑优化:对于都
>
b
i
>b_i
>bi或都
<
b
i
< b_i
<bi的需要连边的
x
,
y
x,y
x,y,实际上
x
,
y
x,y
x,y内部的相对位置已经由它们之间的连边确定了,所以
i
i
i只需要连向
(
b
i
,
b
i
+
k
)
(b_i,b_i+k)
(bi,bi+k)和
(
b
i
−
k
,
b
i
)
(b_i-k,b_i)
(bi−k,bi)中离
i
i
i最近的点即可。