반응형
분할정복 카테고리긴 한데, 그냥 수학문제다.
진짜 이거풀다가 성격 더 버렸다.
수학적인게 계속 나오니까 뭔소린지 모르겠어서 진짜 백준 처음으로 문제 포기하고싶었다.
차라리 빡센 알고리즘 문제들이 훨씬 낫다.. 진짜 뭔소린지 아예 가늠이 안되고 이해도 안되니 너무짜증남.
설명은 두 블로그를 참고했다.
m.blog.naver.com/hongjg3229/221650178981
두 블로그중 특히 아래 블로그가 나같은 수포자에게 도움을 주었다.
#include <stdio.h>
int N, K;
long long m[4000001] = {1, };
long long pow_(long long a, long long b) {
if(b == 1)
return a;
long long result = pow_(a, b / 2) % 1000000007;
result = (result * result) % 1000000007;
if(b % 2)
result = (result * a) % 1000000007;
return result;
}
int main() {
scanf("%d %d", &N, &K);
for(int i = 1; i <= N; i++) {
m[i] = (i * m[i - 1]) % 1000000007;
}
printf("%lld", (m[N] *pow_((m[N-K]*m[K])%1000000007 , 1000000005))%1000000007);
}
코딩도 뭐 어떻게한지도 모르겠다. 진짜 개짜증나고 시간만 너무썼다.
[알아둘 것]
곱셈 단위의 (A * B) % P 에는 분배법칙이 가능하나
분수로 존재하는 나눗셈 단위 (A / B) % P 에서는 P 분배를 해줄 수 없다.
+ (A * B) % P = (A % P) * (B % P) % P
문제 꼴도보기싫다.
하.. 진짜 모듈러니 페르마의 소정리니 뭐니ㅡㅡ
반응형
'[알고리즘 + 자료구조] > [백준]' 카테고리의 다른 글
[BaekJoon/백준] 10830번 분할정복 (0) | 2021.03.18 |
---|---|
[BaekJoon/백준] 2740 분할정복이지만... (0) | 2021.03.17 |
[BaekJoon/백준] 1629번 분할정복 (0) | 2021.03.14 |
[BaekJoon/백준] 1780번 분할정복 (0) | 2021.03.14 |
[BaekJoon/백준] 1992번 분할정복 (0) | 2021.03.14 |