백준/분할 정복
-
백준 11401 nodejs백준/분할 정복 2023. 1. 6. 14:41
문제 https://www.acmicpc.net/problem/11401 풀이 나눗셈에 % 연산을 적용하기 위해 페르마의 소정리를 이용한다. let [[N, K], p] = [require('fs').readFileSync('/dev/stdin').toString().trim().split(' ').map(BigInt), 1000000007n] function fac(s, e) { let x = s for (let i = s + 1n; i K ? (fac(K + 1n, N) * pow(fac(1n, N - K), p - 2n)) % p : 1).toString()) 참조 https://velog.io/@ledcost/%EB%B0%B1%EC%A4%80-11401-%ED%8C%8C%EC%9D%B4%EC%8D..
-
백준 10830 nodejs백준/분할 정복 2023. 1. 5. 15:27
문제 https://www.acmicpc.net/problem/10830 풀이 B = (B / 2) * 2 임을 이용해 A의 거듭제곱을 구한다. (11444번과 유사) let [[N, B], ...A] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(e => e.split(' ').map(BigInt)) N = Number(N) function mul(A, B) { const C = [...Array(N)].map(_ => Array(N).fill(0n)) for (let i = 0; i < N; i++) for (let j = 0; j < N; j++) { for (let k = 0; k < N; k++) C[i]..