Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

블로그 언저리인 무언가

[백준/BOJ] 15724 주지수 본문

Programming/BOJ

[백준/BOJ] 15724 주지수

he1fire 2020. 9. 24. 22:57
728x90

문제 : 15724 주지수

 

15724번: 주지수

네모 왕국의 왕인 진경대왕은 왕국의 영토를 편하게 통치하기 위해서 1X1의 단위 구역을 여러 개 묶어서 하나의 거대 행정구역인 주지수(州地數, 마을의 땅을 셈)를 만들 예정이다. 진경대왕은 ��

www.acmicpc.net

직사각형의 범위가 주어질 때 그 안에 사는 사람 수의 합을 출력하는 문제이다.

배열의 길이가 N, 주어지는 범위의 개수가 M일 때 그냥 구하게 되면

O(N^2*M)으로 시간 초과이므로 누적합 배열을 이용해

시간을 O(N^2+M)으로 줄여서 구하면 된다.


Code

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll N, M, T, arr[1050][1050];
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> N >> M;
    for (int i=1;i<=N;i++){
        for (int j=1;j<=M;j++){
            ll a;
            cin >> a;
            arr[i][j]=a+arr[i-1][j]+arr[i][j-1]-arr[i-1][j-1];
        }
    }
    cin >> T;
    while (T--){
        ll x1, x2, y1, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        cout << arr[x2][y2]-arr[x1-1][y2]-arr[x2][y1-1]+arr[x1-1][y1-1] << "\n";
    }
    return 0;
}
728x90

'Programming > BOJ' 카테고리의 다른 글

[백준/BOJ] 1753 최단경로  (0) 2020.09.26
[백준/BOJ] 17953 디저트  (0) 2020.09.25
[백준/BOJ] 1342 행운의 문자열  (0) 2020.09.24
[백준/BOJ] 14499 주사위 굴리기  (0) 2020.09.23
[백준/BOJ] 4811 알약  (0) 2020.09.22
Comments