728x90
https://www.acmicpc.net/problem/11660
최초풀이
시간초과 에러가 많이 발생하는 문제입니다.
DP 알고리즘을 잘활용하고 빠른 입출력 처리도 해주어야 합니다.
#include <iostream>
using namespace std;
int dp[1025][1025];
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N, M;
cin >> N >> M;
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
cin >> dp[i][j];
dp[i][j] = dp[i-1][j]+dp[i][j-1] - dp[i-1][j-1] +dp[i][j];
}
}
while (M--) {
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
cout << dp[x2][y2] - dp[x1 - 1][y2] - dp[x2][y1 - 1] + dp[x1 - 1][y1 - 1] << '\n';
}
return 0;
}
728x90
'🥇Baekjoon Solutions > 동적계획법' 카테고리의 다른 글
[C++] 백준 14852번: 타일 채우기 3 (0) | 2021.08.28 |
---|---|
[C++] 백준 11659번: 구간 합 구하기 4 (0) | 2021.08.01 |
[C++] 백준 1932번: 정수 삼각형 (0) | 2021.08.01 |
댓글