Tính tổ hợp chập k của n
Submit solution
Points:
3
Time limit:
3.0s
Memory limit:
98M
Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG
Cho số nguyên dương \(n\) và cho số tự nhiên \(k\) nằm trong đoạn \([0,n]\) Hãy tính tổ hợp chập \(k\) của \(n\)
Input
Dòng đầu là số bộ test \(t (1 \le t \le 10) \)
Tiếp theo \(t\) dòng mỗi dòng chứa hai số \(k\) và \(n\) thỏa mãn \((0 \le k \le n \le 10^5)\)
Output
Kết quả tổ hợp chập \(k\) của \(n\) bởi vì kết quả quá lớn chỉ cần lấy phần dư của kết quả chia cho \(10^9+7\)
Ví dụ
Input
4
6 3
10 7
41 21
20 17
Output
20
120
128935337
1140
Comments
code tham khao cac bạn phải học kiến thức về euclid mở rộng, nghịch đảo modun để áp dụng ct (a / b) % m = (a % m) * (b ^ -1 % m) % m.
Xem hướng dẫn của thầy về nghịch đảo modulo
mn cho e hỏi e sai ở đâu với ạ
toàn bị segmentation fault
Nó cho n tới 10^5 mà em chỉ khai báo dp có kích thước tới 10^4
em cũng tăng lên 10^5 lại bị lỗi dịch ạ.
Ồ lỗi dịch nhưng nộp vẫn được chỉ là bộ nhớ ở đây 98Mb nếu đủ thì ko sao không đủ thì MLE
em đưa void tinh() đấy vào main thì lại bị TLE:((
Bài toán này khó rồi, thuật toán của em chưa đủ mạnh
dạ thầy. Em nghe nói bài này dùng quy hoạch động mới AC được:((
thay vì dùng mảng 2 chiều em dùng mảng 1 chiều là được
Chắc phải làm thêm bài "lại là tổ hợp chập" nữa nhỉ