티스토리 뷰

https://www.acmicpc.net/problem/11401

 

11401번: 이항 계수 3

자연수 \(N\)과 정수 \(K\)가 주어졌을 때 이항 계수 \(\binom{N}{K}\)를 1,000,000,007로 나눈 나머지를 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

페르마의 정리.. 를 이용하는 문제

 

A^p 

A

는 (mod p)에 대하여 동치이다(p로 나누었을 때 같은 나머지 값을 가짐)

라는 정리를 이용함. 

 

 

더보기
더보기

나머지 연산의 분배 법칙은 분모에 대하여 적용되지 않기 때문에 역원을 이용하여 위와 같은 변환을 함.

 

 

 

또한 분할정복을 이용한 거듭제곱 연산 과정을 통하여 시간복잡도를 O(logN) 으로 하여 계산하여 줌.

https://blog.naver.com/raylee00/222198946198

 

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    static int P = 1000000007;

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String line = br.readLine();

        int N = Integer.valueOf(line.split(" ")[0]);
        int K = Integer.valueOf(line.split(" ")[1]);

        long a = factorial(N);
        long b = factorial(K) * factorial(N - K) % P;

        long sum = a * f_pow(b, P - 2) % P;
        System.out.println(sum);

    }

    private static long factorial(int num) {
        long sum = 1;
        for (int i = num; i > 1; i--) {
            sum = sum * i % P;
        }
        return sum;
    }

    private static long f_pow(long a, long b) {
        if(b==0) return 1;
        if(b%2==1) return f_pow(a, b - 1) * a % P;
        long sum = f_pow(a, b / 2) % P;
        return sum * sum % P;
    }
}

 

 


https://velog.io/@gaeunek/backjoon-311401

 

[백준] 이항 계수 3(11401)

[백준] 이항 계수 3 문제 풀이(Java)

velog.io

 

https://aruz.tistory.com/19

 

나머지 연산 곱셈 역원

'나머지 연산 곱셈 역원'은 Modular Multiplicative Inverse의 직역입니다. 나머지 연산은 합동식과 동치입니다. 일반적인 곱셈의 역원은 $\frac{1}{x}$입니다. 어떤 수 $x$에 $\frac{1}{x}$을 곱하면 항등원 $1$..

aruz.tistory.com

 

'알고리즘 > 코테' 카테고리의 다른 글

[백준 2749] 피보나치 수 3  (0) 2022.02.21
[백준 10830] 행렬 제곱  (0) 2022.02.08
[백준 12865] 평범한 배낭  (0) 2022.01.16
[백준 1987] 알파벳  (0) 2022.01.12
[백준 1405] 미친 로봇  (0) 2022.01.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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
글 보관함