1. 程式人生 > >牛客寒假6-E.海嘯

牛客寒假6-E.海嘯

二維前綴和 題意 com space mes namespace 二維 sin true

鏈接:https://ac.nowcoder.com/acm/contest/332/E

題意:

有一個沿海地區,可以看作有n行m列的城市,第i行第j列的城市海拔為h[i][j]。
由於沿海,所以這個地區經常會發生海嘯。
海嘯發生時,部分城市會被淹沒,具體來說,海水高度會達到d,因此海拔低於d的城市都會被淹沒。
現在有q次詢問,每次問你一個矩形區域中,有多少城市不會被淹沒。

思路:

二維前綴和

代碼:

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n, m, d;
    int x;
    cin >> n >> m >> d;
    int res[n+1][m+1];
    for (int i = 0;i <= m;i++)
        res[0][i] = 0;
    for (int i = 0;i <= n;i++)
        res[i][0] = 0;
    for (int i = 1;i <= n;i++)
    {
        for (int j = 1; j <= m; j++)
        {
            cin >> x;
            int v = 0;
            if (x >= d)
                v = 1;
            res[i][j] = res[i][j - 1] + res[i - 1][j] - res[i - 1][j - 1] + v;
        }
    }
    int q;
    int x1,x2,y1,y2;
    cin >> q;
    for (int i = 1;i <= q;i++)
    {
        cin >> x1 >> y1 >> x2 >> y2;
        cout << res[x2][y2] - res[x2][y1-1] - res[x1-1][y2] + res[x1-1][y1-1] << endl;
    }

    return 0;
}

  

牛客寒假6-E.海嘯