传送门 需要n*m的算法,考虑单调队列 可以预处理出来 a[i][j]表示以i,j为右下角的绿化带+花坛的和 b[i][j]表示以i,j为右下角的花坛的和 那么我们可以单调队列跑出来在A-C-1,B-D-1的矩阵中的b[i][j]的最小值 枚举i,j,用取a[i][j]-ans[i-1][j-1]的最大值 #include <cstdio> #include <iostream> #define N 2001 using namespace std; int n, m, A, B,…
和「理想的正方形」比较相似,需要先掌握那道题. 花坛外头每一边必须套上绿化带 #include <iostream> #include <cstdio> using namespace std; int n, m, a, b, c, d, qwq[1005], twq, hwq, zzxz[1005][1005], ans; int r[1005][1005], hzxz[1005][1005], cd[1005][1005], ab[1005][1005]; int main()…
#include<bits/stdc++.h> using namespace std; ; ; int a,b,n; int g[A][A],q[A][N],Q[A][N]; int head[A],tail[A]; int Head[A],Tail[A]; inline int read(){ ,f=;char ch=getchar(); ;ch=getchar();} )+(x<<)+(ch^);ch=getchar();} return x*f;} int main(){…