티스토리 뷰
제목 그대로 이항계수와 쿼리다
쿼리를 날리는대로 뱉으면 된다
다만 팩토리얼을 계속 계산하지말고 미리 저장해둬야한다
그럼 바로 가져다가 쓰면됨!
소스코드
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 | #include <iostream> #include <algorithm> #include <queue> using namespace std; #define ll long long ll mod = 1e9 + 7, n, m, k, arr[4000010]; ll mypow(ll a, ll b) { if (!b) return 1; if (b & 1) return (a*mypow(a, b - 1) % mod) % mod; return mypow((a*a) % mod, b / 2) % mod; } int main() { scanf(" %lld", &m); arr[0] = 1; for (ll i = 1; i <= 4000000; i++) { arr[i] = i*arr[i - 1]; arr[i] %= mod; } while (m--) { ll a, b, c; scanf(" %lld %lld", &n, &k); a = arr[n]; b = arr[k] * arr[n - k]; b %= mod; c = mypow(b, mod - 2); a *= c; a %= mod; printf("%lld\n", a); } } | cs |
'알고리즘 > BOJ' 카테고리의 다른 글
[백준] 14965 Lozinke (0) | 2018.06.25 |
---|---|
[백준] 11402 이항계수4 (2) | 2018.06.25 |
[백준] 11964 Fruit Feast (5) | 2018.06.25 |
[백준] 13016 내 왼손에는 흑염룡이 잠들어 있다 (0) | 2018.06.24 |
[백준] 1280 나무심기 (0) | 2018.06.24 |
댓글