#1645. 珅泽教育CSP-J第一轮模拟考第五套 第 39 题

珅泽教育CSP-J第一轮模拟考第五套 第 39 题

三、完善程序(单选题,每小题3分,共计30分)

第1题

给定一个 n×nn\times n 的网格。第 i+1i+1 行、第 j+1j+1 列的格子(0i,j<n0\le i,j<n)记作 (i,j)(i,j)。格子 (i,j)(i,j) 的颜色由字符 P[imodn][jmodn]P[i\bmod n][j\bmod n] 决定,如果是 B,则 (i,j)(i,j) 是黑格,如果是 W,则是白格。

给定 QQ 个查询,请依次处理。每个查询给出 44 个整数 A,B,C,DA,B,C,D,求出以 (A,B)(A,B) 为左上角、(C,D)(C,D) 为右下角的矩形区域内包含的黑格数量。

#include<iostream>
int n, q;
int s[1001][1001];
long long sum(int row, int col) {
    long long a = 1LL * ____(1)____ ;
    long long b = 1LL * (row/n) * s[n][col%n];
    long long c = 1LL * (col/n) * s[row%n][n];
    long long d = 1LL * ____(2)____ ;
    return ____(3)____ ;
}
int main() {
    std::cin >> n >> q;
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < n; ++j) {
            char c;
            std::cin >> c;
            ____(4)____ ;
        }
    while (q-->0) {
        int x1, x2, y1, y2;
        std::cin >> x1 >> y1 >> x2 >> y2;
        std::cout << ____(5)____ << "\n";
    }
}

(4) 处应填( )。

{{ select(1) }}

  • s[i][j] = s[i][j-1] + s[i-1][j] - s[i-1][j-1] + (c == 'B')
  • s[i][j] = s[i][j-1] + s[i-1][j] + s[i-1][j-1] + (c == 'W')
  • s[i+1][j+1] = s[i+1][j] + s[i][j+1] - s[i][j] + (c == 'B')
  • s[i+1][j+1] = s[i+1][j] + s[i][j+1] + s[i][j] + (c == 'W')