- μΉ΄μΉ΄μ€2021
- Union-Find
- golang
- λμ νλ‘κ·Έλλ°
- κ°μ₯κ°κΉμ΄κ³΅ν΅μ‘°μ
- μΉ΄μΉ΄μ€ μ½ν
- C++
- DFS
- js
- λΉνΈλ§μ€νΉ
- μκ³ λ¦¬μ¦
- μμ½λ
- μΉλ¦°μ΄
- ν리μ¨λ³΄λ©
- λ°±μ€
- DP
- νΈλ¦¬
- LCs
- μ¬λΌμ΄λ© μλμ°
- μν°λ
- go
- μ¬κ·
- λ€μ΅μ€νΈλΌ
- λ°±μλ ν리μ¨λ³΄λ©
- Python
- nestjs
- νλ‘κ·Έλλ¨Έμ€
- μ΄λΆνμ
- λΉνΈλ§΅
- BFS
- Today
- Total
Hello Ocean! πΌ
[λ°±μ€/C++] 12888. μμ μ΄μ§ νΈλ¦¬ λλ‘ λ€νΈμν¬ λ³Έλ¬Έ
λ¬Έμ
https://www.acmicpc.net/problem/12888
BOJ λλΌλ λμμ λ λμλ₯Ό μ°κ²°νλ λλ‘λ‘ μ΄λ£¨μ΄μ Έ μλ€. μ΄ λλΌμ λλ‘ λ€νΈμν¬λ μμ μ΄μ§ νΈλ¦¬μ ννλ₯Ό κ°μ§λ€.
μλΉμ΄λ BOJ λλΌμ λλ‘ λ€νΈμν¬ νΈλ¦¬μ λμ΄ Hλ₯Ό μκ³ μλ€. νΈλ¦¬μ λμ΄λ₯Ό μλ€λ©΄, λμμ κ°μμ λλ‘μ κ°μλ ꡬν μ μλ€. νΈλ¦¬μ λμ΄κ° HμΈ κ²½μ°μ λμμ κ°μλ 2(H+1)-1κ° μ΄κ³ , λλ‘μ κ°μλ 2(H+1)-2κ°κ° λλ€.
μλ κ·Έλ¦Όμ H = 2μΌ λ, κ·Έλ¦Όμ΄λ€.
μλΉμ΄λ λλ‘ λ€νΈμν¬μ μ°¨λ₯Ό 보λ΄λ €κ³ νλ€. λͺ¨λ μ°¨λ μμ λμμ λμ°© λμκ° μμΌλ©°, κ°μ λμλ₯Ό λ λ² μ΄μ λ°©λ¬Ένμ§ μλλ€. μ°¨μ μμ λμμ λμ°© λμκ° κ°μ μλ μλ€.
λͺ¨λ λμλ₯Ό λ°©λ¬Έν μ°¨μ κ°μκ° λͺ¨λ 1κ°κ° λκΈ° μν΄μ, μλΉμ΄κ° μ°¨λ₯Ό μ΅μ λͺ λλ₯Ό 보λ΄μΌ νλμ§ κ΅¬νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
νμ΄
[첫 λ²μ§Έ μ κ·Ό]
곡μμ μ°Ύμμ, λ°λ‘ κ³μ°ν΄μ λ΄λ³΄λ΄λ λ°©μμΌλ‘ ν΄λ³΄μλ€.
λͺ λ¨κ³λ₯Ό μ μ΄μ νμΈν΄λ³΄λ 곡μμ μ°Ύμ μ μμλ€.
곡μμ μ΄μ©νλ©΄ O(logN)μ 볡μ‘λλ‘ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμλλ°, μ μΆν΄λ³΄λ νλ Έμ΅λλ€κ° λμλ€.
곡μμ μ€λ₯κ° μμ΄μ κ·Έλ°κ±°λΌκ³ μκ°νμ§λ§, νλ¦° μ΄μ λ₯Ό μ ννλ λͺ¨λ₯΄κ² λ€.
[λ λ²μ§Έ μλ]
DP곡μμ μ°Ύμμ DPλ°©μμΌλ‘ ν΄λ³΄μλ€.
μ½λ
#include <iostream>
#define sc scanf_s //μ μΆμμ scanfλ‘ λ°κΏμΌν¨
using namespace std;
long long dp[61];
int main() {
int H; sc("%d", &H);
dp[0] = 1; dp[1] = 1;
for (int i = 2; i <= H; i++) {
if (i % 2 == 0) { //μ§
dp[i] = dp[i - 1] * 2 + 1;
}
else { //ν
dp[i] = dp[i - 1] * 2 - 1;
}
}
printf("%lld\n",dp[H]);
}
κ²°κ³Ό
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C/C++] scanf, scanf_sλ‘ μ λ ₯λ°μ λ "\n" μ΄ μμ¬ λ€μ΄κ°λ λ¬Έμ (0) | 2021.07.30 |
---|---|
[λ°±μ€/C++] 11437, 11438. LCA 1,2 (0) | 2021.07.27 |
[λ°±μ€/C++] 10838. νΈλ¦¬ (0) | 2021.07.20 |
[λ°±μ€/C++] 19535. γ·γ·γ·γ (0) | 2021.07.13 |
[λ°±μ€/C++] 3584. κ°μ₯ κ°κΉμ΄ 곡ν΅μ‘°μ (0) | 2021.07.06 |