洛谷P2216 理想的正方形 题目链接 思路: 直接暴力显然不可行,可以发现每一个矩形向右边扩展时是一列一列增加,于是可以想到单调队列,用数组来维护当前每列的最大值.因为行也有限制,所以还要用一个单调队列来维护行的信息. 做法大概就是每次扩展一行,然后求出每一列当前的最大值,之后再一列一列来搞. 详见代码吧: #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1005, M = 1…