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

    solution

    Đề bài: [Python] Chain memoize + count_calls cho đệ quy nCr

    Viết hai decorator: memoize (dùng dict cache theo args), count_calls (gắn .calls đếm số lần wrapper được gọi). Chain: @count_calls (ngoài cùng) trên @memoize trên hàm đệ quy C(n,k) (C(n,0)=C(n,n)=1, C(n,k)=C(n-1,k-1)+C(n-1,k)). Đọc Q truy vấn n k; với mỗi truy vấn in C(n,k) mod (10^9+7). Cuối cùng in C.calls.

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

      Dòng đầu Q. Q dòng sau n k.

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

      1 <= Q <= 50, 0 <= k <= n <= 30. Lưu ý: count_calls phải nằm NGOÀI memoize, nên mỗi cuộc gọi (kể cả cache hit) đều +1.

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

      Q dòng kết quả, sau đó một dòng số lần wrapper ngoài cùng được gọi (chính là tổng số lệnh gọi C nhìn từ bên ngoài, bao gồm cả đệ quy).

    Ví dụ:

    Đầu vào:

    3
    5 2
    10 5
    6 3
    

    Đầu ra:

    10
    252
    20
    53

    Giải thích:

    10, 252, 20 và số lần gọi C tích lũy.

    Đang tải editor...