์๊ฐ ์ ํ | ๋ฉ๋ชจ๋ฆฌ ์ ํ | ์ ๋ต ๋น์จ |
2 ์ด | 512 MB | 31.977% |
๋ฐฉ๋ฒ
๋ก๋ด์ด '์๋์ ์ค๋ฅธ์ชฝ'์ผ๋ก ๊ฐ๋ ๊ฒ๊ณผ '์๋์ ์ผ์ชฝ'์ผ๋ก ๊ฐ๋ ๊ฒ ๋ ๋ฐฉ๋ฒ์ ๊ฐ๊ฐ ๊ตฌํด์ ๋ ํฐ ๊ฐ์ผ๋ก dp ๋ฐฐ์ด์ ์ฑ์๋๊ฐ๋ค.
์ญ์๋.. dp๋ ํต์ฐฐ๋ ฅ!! ํต์ฐฐ๋ ฅ์ ํค์ฐ์ใ ใ
๋ฉ๋ชจ๋ฆฌ | ์๊ฐ |
9012 KB | 124 ms |
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#include <cstdio>
#include <string.h>
#include <algorithm>
using namespace std;
#define INF -1000000
int arr[1005][1005];
int dp1[1005][1005];
int dp2[1005];
int n, m;
int main(void)
{
scanf("%d %d", &n, &m);
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= m; j++) {
dp1[i][j] = INF;
}
}
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
scanf("%d", &arr[i][j]);
dp1[1][0] = 0;
for (int j = 1; j <= m; j++)
dp1[1][j] = dp1[1][j - 1] + arr[1][j];
for (int i = 2; i <= n; i++) {
for (int j = 0; j <= m+1; j++)
dp2[j] = INF;
for (int j = 1; j <= m; j++) {
dp1[i][j] = max(dp1[i][j - 1], dp1[i - 1][j]) + arr[i][j];
}
for (int j = m; j >= 1; j--) {
dp2[j] = max(dp2[j + 1], dp1[i - 1][j]) + arr[i][j];
}
for (int j = 1; j <= m; j++) {
dp1[i][j] = max(dp1[i][j], dp2[j]);
}
}
printf("%d\n", dp1[n][m]);
return 0;
}
|
cs |
1์ฐจ์ ๋ฐฐ์ด 3๊ฐ๋ก ๋๋ด๋ ๋ฐฉ๋ฒ!
๋ง์ ์ฌ๋ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ๋ ํ ๋ฒ ๋ฐฐ์ฐ๊ฒ ๋๋ค.. ๋ฉ์ง ์ฌ๋๋ค
์ด ๋ฐฉ๋ฒ์ ๊ฐ์ค์น๋ฅผ ๋ฐ์ผ๋ฉด์ ๋์์ ์ฐ์ฐ์ ํ๋๋ฐ, ๋ฐฐ์ด B ๊ฐ '์๋์ ์ค๋ฅธ์ชฝ'์ผ๋ก ์ด๋ํ๋ ๊ฐ์ค์น์ ํฉ, A๊ฐ '์๋์ ์ผ์ชฝ'์ผ๋ก ์ด๋ํ ๋์ ๊ฐ์ค์น๊ฐ ๋๋ค.
๋ฉ๋ชจ๋ฆฌ | ์๊ฐ |
1128 KB | 116 ms |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include <cstdio>
#include <string.h>
#include <algorithm>
using namespace std;
int dp[1000], A[1000], B[1000];
int n, m;
int main(void){
scanf("%d%d", &n, &m);
fill(dp + 1, dp + m, (int)-1e9);
dp[0] = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &A[j]);
B[j] = (j && B[j - 1] > dp[j] ? B[j - 1] : dp[j]) + A[j];
}
for (int j = m - 1; j >= 0; j--)
A[j] += j<m - 1 && A[j + 1]>dp[j] ? A[j + 1] : dp[j];
for (int j = 0; j < m; j++)
dp[j] = max(A[j], B[j]);
}
printf("%d", dp[m - 1]);
return 0;
}
|
cs |
'๐ฅ PS(Problem Solving) ๐ฅ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] #13458 ์ํ๊ฐ๋ (0) | 2019.10.09 |
---|---|
[BOJ] #2240 ์๋๋๋ฌด (0) | 2019.10.02 |
[BOJ] #1149 RGB ๊ฑฐ๋ฆฌ (0) | 2019.10.02 |
[BOJ] #1010 ๋ค๋ฆฌ๋๊ธฐ (0) | 2019.10.02 |
[BOJ] #14891 ํฑ๋๋ฐํด (0) | 2019.10.02 |
๋๊ธ