若目标位于爆破正方形的边上,该目标将不会被摧毁。 这是题中给出的说明,但是按照这个要求取计算,不取正方形边界的数据,答案是错误的,包含边界的数据反而是正确的,所以归根结底就是一个简单的二维前缀和的问题。 但是重要的是,在标记最大行数和列数之前,xx 和 yy要初始化为r,因为最大边界至少要满足r的大小才能进行接下来的遍历,否则没有意义。 #include <bits/stdc++.h> using namespace std; const int N = 5005; int a[N][N], s[N][N], n, r, xx, yy; int main(){ cin >&...