μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
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 |
- μν
- 그리λ
- SQL
- μ λ ¬
- μλ£κ΅¬μ‘°
- μ€λΈμ
- λμ κ³νλ²
- ν°μ€ν 리μ±λ¦°μ§
- λ°±μ€
- db
- DP
- λμ ν©
- LIS
- κ·Έλννμ
- μμꡬνκΈ°
- λ¨Έμ§μνΈ
- κ·Έλν
- μ°μ μμν
- νλ‘κ·Έλλ¨Έμ€
- μμνμ
- κΉμ΄μ°μ νμ
- λλΉμ°μ νμ
- λ³ν©μ λ ¬
- νμ΄μ¬
- ꡬν
- λ°μ΄ν°λ² μ΄μ€
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- μκ³ λ¦¬μ¦
- DFS
- BFS
πππ°πΈ π£πΆπ΅ π΄π΅π¦π’π₯πΊ
[λ°±μ€] 15486λ²: ν΄μ¬ 2 - C++ λ³Έλ¬Έ
λ¬Έμ
μλ΄μμΌλ‘ μΌνκ³ μλ λ°±μ€μ΄λ ν΄μ¬λ₯Ό νλ €κ³ νλ€.
μ€λλΆν° N+1μΌμ§Έ λλ λ ν΄μ¬λ₯Ό νκΈ° μν΄μ, λ¨μ NμΌ λμ μ΅λν λ§μ μλ΄μ νλ €κ³ νλ€.
λ°±μ€μ΄λ λΉμμκ² μ΅λν λ§μ μλ΄μ μ‘μΌλΌκ³ λΆνμ νκ³ , λΉμλ ν루μ νλμ© μλ‘ λ€λ₯Έ μ¬λμ μλ΄μ μ‘μλμλ€.
κ°κ°μ μλ΄μ μλ΄μ μλ£νλλ° κ±Έλ¦¬λ κΈ°κ° Tiμ μλ΄μ νμ λ λ°μ μ μλ κΈμ‘ Piλ‘ μ΄λ£¨μ΄μ Έ μλ€.
N = 7μΈ κ²½μ°μ λ€μκ³Ό κ°μ μλ΄ μΌμ νλ₯Ό 보μ.
1μΌ | 2μΌ | 3μΌ | 4μΌ | 5μΌ | 6μΌ | 7μΌ | |
Ti | 3 | 5 | 1 | 1 | 2 | 4 | 2 |
Pi | 10 | 20 | 10 | 20 | 15 | 40 | 200 |
1μΌμ μ‘νμλ μλ΄μ μ΄ 3μΌμ΄ 걸리며, μλ΄νμ λ λ°μ μ μλ κΈμ‘μ 10μ΄λ€. 5μΌμ μ‘νμλ μλ΄μ μ΄ 2μΌμ΄ 걸리며, λ°μ μ μλ κΈμ‘μ 15μ΄λ€.
μλ΄μ νλλ° νμν κΈ°κ°μ 1μΌλ³΄λ€ ν΄ μ μκΈ° λλ¬Έμ, λͺ¨λ μλ΄μ ν μλ μλ€. μλ₯Ό λ€μ΄μ 1μΌμ μλ΄μ νκ² λλ©΄, 2μΌ, 3μΌμ μλ μλ΄μ ν μ μκ² λλ€. 2μΌμ μλ μλ΄μ νκ² λλ©΄, 3, 4, 5, 6μΌμ μ‘νμλ μλ΄μ ν μ μλ€.
λν, N+1μΌμ§Έμλ νμ¬μ μκΈ° λλ¬Έμ, 6, 7μΌμ μλ μλ΄μ ν μ μλ€.
ν΄μ¬ μ μ ν μ μλ μλ΄μ μ΅λ μ΄μ΅μ 1μΌ, 4μΌ, 5μΌμ μλ μλ΄μ νλ κ²μ΄λ©°, μ΄λμ μ΄μ΅μ 10+20+15=45μ΄λ€.
μλ΄μ μ μ ν νμ λ, λ°±μ€μ΄κ° μ»μ μ μλ μ΅λ μμ΅μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ N (1 ≤ N ≤ 1,500,000)μ΄ μ£Όμ΄μ§λ€.
λμ§Έ μ€λΆν° Nκ°μ μ€μ Tiμ Piκ° κ³΅λ°±μΌλ‘ ꡬλΆλμ΄μ μ£Όμ΄μ§λ©°, 1μΌλΆν° NμΌκΉμ§ μμλλ‘ μ£Όμ΄μ§λ€. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000)
μΆλ ₯
첫째 μ€μ λ°±μ€μ΄κ° μ»μ μ μλ μ΅λ μ΄μ΅μ μΆλ ₯νλ€.
π 14501λ²: ν΄μ¬μ λμΌν λ¬Έμ
κ·Έλ¬λ Nμ΄ 15μλ 14501λ²κ³Ό λ¬λ¦¬ μ΄λ² λ¬Έμ λ 1,500,000μ΄κΈ° λλ¬Έμ μμ λμΌν λ°©μμΌλ‘ νλ©΄ μκ°μ΄κ³Όκ° λλ€.
λ°λΌμ forλ¬Έμ΄ νλμ§λ¦¬μΈ νμ΄λ°©μμΌλ‘ λ°κΏμ νμ΄μ€λ€.
μλ΄ μΌμ μ΄ λ΄κΈ΄ λ°°μ΄ schedule[N][2]μ μ°Έκ³ νμ¬ νμ¬ λ μ§κΉμ§ μ»μ μ μλ μ΅λ μ΄μ΅μ λ΄μλλ λ°°μ΄ result[N]μ μμ±νλ€.
λ°λΌμ iλ²μ§Έ μΌκΉμ§ μΌνμ λ μ»μ μ μλ μ΅λ μ΄μ΅μ result[i]λΌκ³ ν λ,
iλ²μ§Έ λ μ μΌμ μμν΄μ (i + schedule[i][0])μΌκΉμ§ μΌνμ λ μ»μ μ μλ μ΅λ μ΄μ΅κ³Ό κΈ°μ‘΄μ μ‘΄μ¬νλ result[i + schedule[i][0]]κ°μ λΉκ΅νμμ λ λ ν° κ°μ΄ 곧 (i + schedule[i][0])μΌκΉμ§ μΌνμ λμ μ΅λ μ΄μ΅μ΄ λλ€.
μ½λ
#include <cstdio>
#define MAX 1500051
int schedule[MAX][2];
int result[MAX];
int max(int a, int b) {
return (a > b ? a : b);
}
void DP(int num);
int main(void) {
int N;
scanf("%d", &N);
DP(N);
return 0;
}
void DP(int num) {
int maximum = 0;
int current = 0;
for(int i = 1; i <= num; i++) {
scanf("%d %d", &schedule[i][0], &schedule[i][1]);
}
for(int i = 1; i <= num + 1; i++) {
current = max(current, result[i]);
if(i + schedule[i][0] <= num + 1) {
result[i + schedule[i][0]] = max(result[i + schedule[i][0]], current + schedule[i][1]);
maximum = max(maximum, result[i + schedule[i][0]]);
}
else continue;
}
printf("%d\n", maximum);
}
'μ½λ©ν μ€νΈ μ€λΉ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 11047: λμ 0 - C++ (0) | 2022.07.12 |
---|---|
[λ°±μ€] 15988λ²: 1, 2, 3 λνκΈ° 3 - C++ (0) | 2022.07.08 |
[λ°±μ€] 12852λ²: 1λ‘ λ§λ€κΈ° 2 - C++ (0) | 2022.07.06 |
[λ°±μ€] 1003λ²: νΌλ³΄λμΉ ν¨μ - C++ (0) | 2022.07.05 |
[λ°±μ€] 1149λ²: RGB거리 - C++ (0) | 2022.07.04 |