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

    solution

    Đề bài: [Giải thuật] Nhân đa thức modulo

    Cho hai đa thức A(x)=∑i=0naixiA(x) = \sum_{i=0}^{n} a_i x^iA(x)=∑i=0n​ai​xi và B(x)=∑j=0mbjxjB(x) = \sum_{j=0}^{m} b_j x^jB(x)=∑j=0m​bj​xj với các hệ số nguyên. Hãy tính đa thức tích C(x)=A(x)⋅B(x)C(x) = A(x) \cdot B(x)C(x)=A(x)⋅B(x), với mỗi hệ số lấy theo modulo ppp (ppp là số nguyên tố nhỏ).

    Hệ số ck=(∑i+j=kaibj) mod pc_k = \left(\sum_{i+j=k} a_i b_j\right) \bmod pck​=(∑i+j=k​ai​bj​)modp.

    Ví dụ: A=1+2xA = 1 + 2xA=1+2x, B=3+4xB = 3 + 4xB=3+4x cho C=3+10x+8x2C = 3 + 10x + 8x^2C=3+10x+8x2.

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

      Dòng đầu chứa ppp. Dòng thứ hai chứa nnn rồi n+1n+1n+1 hệ số a0,…,ana_0, \dots, a_na0​,…,an​. Dòng thứ ba chứa mmm rồi m+1m+1m+1 hệ số b0,…,bmb_0, \dots, b_mb0​,…,bm​.

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

      2≤p≤109+72 \le p \le 10^9+72≤p≤109+7 (ppp nguyên tố), 0≤n,m≤20000 \le n, m \le 20000≤n,m≤2000, 0≤ai,bj<p0 \le a_i, b_j < p0≤ai​,bj​<p.

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

      In n+m+1n+m+1n+m+1 hệ số c0,…,cn+mc_0, \dots, c_{n+m}c0​,…,cn+m​ (đã lấy modulo ppp) trên một dòng, cách nhau bởi dấu cách.

    Ví dụ:

    Đầu vào:

    1000000007
    1
    1 2
    1
    3 4
    

    Đầu ra:

    3 10 8

    Giải thích:

    A = 1 + 2x, B = 3 + 4x. Tích là 1*3 + (1*4+2*3)x + 2*4 x^2 = 3 + 10x + 8x^2, các hệ số đều nhỏ hơn p nên giữ nguyên 3 10 8.

    Đang tải editor...