diff --git a/tgyuuAn/README.md b/tgyuuAn/README.md index 3439e26..7c73613 100644 --- a/tgyuuAn/README.md +++ b/tgyuuAn/README.md @@ -55,9 +55,6 @@ | 51차시 | 2024.04.07 | BFS | 과외맨 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/179 | 52차시 | 2024.05.06 | 위상정렬 | 게임 개발 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/182 | 53차시 | 2024.05.09 | 백트래킹 | 2048 (Easy) | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/184 -| 51차시 | 2024.04.07 | BFS | 과외맨 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/179 -| 52차시 | 2024.05.06 | 위상정렬 | 게임 개발 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/182 -| 53차시 | 2024.05.09 | 백트래킹 | 2048 (Easy) | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/184 | 54차시 | 2024.05.14 | 다익스트라 | 미확인 도착지 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/185 | 55차시 | 2024.05.18 | 유니온 파인드 | 친구 네트워크 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/189 | 56차시 | 2024.05.18 | BFS | 공주님을 구해라! | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/193 @@ -88,4 +85,5 @@ | 79차시 | 2024.10.12 | 이분 매칭 | 책 나눠주기 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/251 | 80차시 | 2024.11.11 | 다익스트라 | 최소비용 구하기 2 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/254 | 81차시 | 2024.11.15 | 이분 탐색 | Cubeeditor | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/255 +| 82차시 | 2024.11.22 | 희소 배열 | 합성함수와 쿼리 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/257 --- diff --git "a/tgyuuAn/\355\235\254\354\206\214 \353\260\260\354\227\264/\355\225\251\354\204\261\355\225\250\354\210\230\354\231\200 \354\277\274\353\246\254.py" "b/tgyuuAn/\355\235\254\354\206\214 \353\260\260\354\227\264/\355\225\251\354\204\261\355\225\250\354\210\230\354\231\200 \354\277\274\353\246\254.py" new file mode 100644 index 0000000..b5ae791 --- /dev/null +++ "b/tgyuuAn/\355\235\254\354\206\214 \353\260\260\354\227\264/\355\225\251\354\204\261\355\225\250\354\210\230\354\231\200 \354\277\274\353\246\254.py" @@ -0,0 +1,25 @@ +import sys + +def input(): return sys.stdin.readline().rstrip() + +M = int(input()) +f_x = list(map(int, input().split())) + +# 희소 배열 초기화 +table = [[0] * (M + 1) for _ in range(30)] +table[0] = [0] + f_x # 첫 번째 레벨 초기화 + +# 희소 배열 채우기 +for i in range(1, 30): # 2^i 단계를 계산 + for x in range(1, M + 1): + table[i][x] = table[i - 1][table[i - 1][x]] + +# 쿼리 처리 +Q = int(input()) +for _ in range(Q): + N, X = map(int, input().split()) + # N을 이진수로 표현해 필요한 단계만 수행 + for i in range(30): + if N & (1 << i): # i번째 비트가 1이라면 + X = table[i][X] + print(X)