티스토리 뷰

알고리즘/BOJ

[백준] 14585 사수빈탕

세진짱 2018. 5. 17. 23:30


(301,301) 까지 가면서 다 보면 된다

처음에 d[300][300][600] 해서 시간까지 테이블로 잡으려다가 

메모리 보고 포기했다 ㅎㅎ


시간을 잡지않아도 (0,0)에서 위,오른쪽만 움직이기 때문에

시간 = x+y가 된다. 따라서 m-x+y가 현재위치에서의 사탕 수 이다


소스코드

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
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int d[303][303];
bool arr[303][303];
int n, m;
 
int go(int x, int y) {
    if (x >= 301 || y >= 301return 0;
    int&ret = d[x][y];
    if (ret != -1return ret;
    int cnt = (arr[x][y]==true) ? max(0,m - x - y) : 0;
    ret = max(go(x + 1, y), go(x, y + 1)) + cnt;
    return ret;
}
 
int main() {
    memset(d, -1sizeof(d));
    scanf(" %d %d"&n, &m);
    for (int i = 0; i < n; i++) {
        int x, y; scanf(" %d %d"&x, &y);
        arr[x][y] = true;
    }
    printf("%d\n", go(00));
 
}
cs


'알고리즘 > BOJ' 카테고리의 다른 글

[백준] 15803 PLAYERJINAH’S BOTTLEGROUNDS  (0) 2018.05.29
[백준] 15783 세진 바이러스  (0) 2018.05.28
[백준] 11581 구호물자  (0) 2018.05.15
[백준] 4256 트리  (0) 2018.05.15
[백준] 5639 이진 검색 트리  (0) 2018.05.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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 31
글 보관함