Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Giải thuật] Hệ số nhị thức modulo nguyên tố

    Cho qqq truy vấn, mỗi truy vấn gồm ba số n,k,pn, k, pn,k,p với ppp là số nguyên tố. Hãy tính (nk) mod p\binom{n}{k} \bmod p(kn​)modp (tổ hợp chập kkk của nnn phần tử, lấy modulo ppp).

    Vì nnn có thể rất lớn, hãy dùng định lý Lucas: viết nnn và kkk theo cơ số ppp, khi đó (nk)≡∏i(niki)(modp),\binom{n}{k} \equiv \prod_i \binom{n_i}{k_i} \pmod{p},(kn​)≡∏i​(ki​ni​​)(modp), với ni,kin_i, k_ini​,ki​ là các chữ số cơ số ppp. Quy ước (nk)=0\binom{n}{k} = 0(kn​)=0 nếu k>nk > nk>n.

    • Định dạng đầu vào:

      Dòng đầu chứa qqq. qqq dòng tiếp theo, mỗi dòng ba số n k pn\ k\ pn k p.

    • Ràng buộc đầu vào:

      1≤q≤1051 \le q \le 10^51≤q≤105, 0≤k≤n≤10180 \le k \le n \le 10^{18}0≤k≤n≤1018, 2≤p≤1062 \le p \le 10^62≤p≤106 (ppp nguyên tố).

    • Định dạng đầu ra:

      Với mỗi truy vấn, in (nk) mod p\binom{n}{k} \bmod p(kn​)modp trên một dòng.

    Ví dụ:

    Đầu vào:

    3
    5 2 7
    10 3 5
    1000000000000 1 1000003
    

    Đầu ra:

    3
    0
    9

    Giải thích:

    C(5,2)=10, mod 7 = 3. C(10,3)=120, mod 5 = 0. C(10^12,1)=10^12, mod 1000003 cho phần dư tương ứng. Định lý Lucas xử lý n cực lớn bằng cách tách theo cơ số p.

    Đang tải editor...