帮别人发的
给你一个序列a,长度为n,你可以任意交换两个数一次,最小化逆序对数量。
和
有一个 n×m 的网格,每个位置是 0 或 1。
定义一个矩形是“J”形的,仅当:
- 所有 1 的位置恰好构成一个正方形。
- 在矩形的四个角,只有左上角是 1,其他都是 0。
形式化地,称一个 h×w 的 01 矩形 b 是“J”的,当且仅当存在 x∈[1,min(h,w)−1],使得 bi,j=[i≤x且j≤x]。
例如:这是一个 J 形的矩阵。
1 1 0 0
1 1 0 0
0 0 0 0
接下来两个都不是:
1 1 1 0
1 1 1 0
0 0 0 0
1 1 1 0
1 1 1 0
1 1 1 0
给你一个 n×m 的矩阵,求有多少个连续子矩形是“J”的。
样例:
5 5
1 1 0 0 0
1 1 0 0 0
0 0 0 0 0
0 0 0 1 0
0 0 0 0 0
输出:11