Portal
link
题意
题解
首先要是一个大于等于五行四列,我们可以考虑枚举这个矩形的形状,也就是需要枚举上边U下边D左边L右边R,然后用一个二维的前缀和,来算出对应的权值。但是
5
≤
n
≤
400
,
4
≤
m
≤
400
5le nle400,4le mle400
5≤n≤400,4≤m≤400,这样是一个大约
O
(
n
4
)
O(n^4)
O(n4)的复杂度,必
T
T
T。考虑减少一维枚举,当我们确定了U,D,R的时候,他的L一定是接在前面出现的某一个合法的地方,因为至少是个四列的矩形,所以至少要包含当R往前三列的贡献,变的就是一个由 (U + 1, 1) ~ (U + 1, L) 的零 和 (D - 1, 1) ~ (D - 1, L)的零 和 (U + 1, L) ~ (D - 1, L) 这一列的0,再加上 (U + 1, 1) ~ (D - 1, L) 这个矩形的1,由于当前前缀和的右端点是确定的一个正数,那我们只需要动态的记录一下前面出现的可以接的L位置的权值的最大值,就是当前局面的最优解。维护所有局面的最优解就是res。
Code
#include
#include
#include
#include
#include
#include
#include
#include