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

    solution

    Đề bài: [Hệ điều hành Unix] Số tiến trình ở đời thứ k

    Số tiến trình ở đời thứ k của cây fork

    Khi thực hiện n lần fork() liên tiếp, ta được một cây tiến trình. Một tiến trình ở đời thứ k là tiến trình cách tiến trình gốc đúng k bước fork (gốc là đời 0, con trực tiếp là đời 1, cháu là đời 2, ...).

    Số tiến trình ở đời thứ k đúng bằng số tổ hợp:

    (nk)=n!k! (n−k)!\binom{n}{k} = \frac{n!}{k!\,(n-k)!}(kn​)=k!(n−k)!n!​

    (Lý do: một tiến trình ở đời k ứng với việc chọn k trong n lời fork mà nó "tham gia tạo nhánh".)

    Cho n và k, hãy tính C(n, k). Nếu k > n, kết quả là 0.

    Ví dụ I/O: n = 3, k = 2 → số cháu = C(3,2) = 3.

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

      Hai số nguyên n và k trên một dòng, cách nhau bởi dấu cách.

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

      0 <= n <= 62, 0 <= k <= 62

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

      Một số nguyên: C(n, k).

    Ví dụ:

    Đầu vào:

    3 2
    

    Đầu ra:

    3

    Giải thích:

    n = 3, k = 2: số tiến trình cháu (đời 2) = C(3,2) = 3.

    Đang tải editor...