这是二维前缀和模板题,先预处理二维前缀和,然后算一下:对于每个正方形的左上角i,j,下面的式子不等于0就是合法点然后把答案统计一下输出即可。 二维前缀和知识:sum表示从1,1开始到i,j这一片平面区域的和。 当画一个图我们可以看出也就是说平面区域(1,1)~ (i,j)是等于它左边的区域(1,1)~ (i,j-1)加上上面的区域(1,1)~(i-1,j)。此时有重叠的部分(1,1) ~ (i-1,j-1),再加上当前点(i,j)就可以了。如下图: 代码: #include<cstdio> #include<iostream> #include<cmath>...