diff options
author | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2017-01-01 20:42:05 +0700 |
---|---|---|
committer | Raphael McSinyx <vn.mcsinyx@gmail.com> | 2017-01-01 20:42:05 +0700 |
commit | c67182c04491f2cf8b67e78b68aebf32aea25470 (patch) | |
tree | d82d7fd5478dffb1348143c67cbb330955dbf0f8 /others/mkcal/README.md | |
parent | 70f37066d2d368a2810a2be209ae0bd8b391293b (diff) | |
download | cp-c67182c04491f2cf8b67e78b68aebf32aea25470.tar.gz |
Update others/{mHoang,mkcal}
Diffstat (limited to 'others/mkcal/README.md')
-rw-r--r-- | others/mkcal/README.md | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/others/mkcal/README.md b/others/mkcal/README.md new file mode 100644 index 0000000..bebe188 --- /dev/null +++ b/others/mkcal/README.md @@ -0,0 +1,148 @@ +# Bài tập lập lịch + +## Chương trình máy tính + +Giả sử trong một phiên làm việc từ thời điểm 0 đến 8640000, một trung tâm tính +toán cần thực hiện n chương trình, chương trình i được thực hiện trong đoạn +thời gian [a<sub>i</sub>, b<sub>i</sub>]. + +### Yêu cầu + +* Cho đoạn thời gian [p<sub>0</sub>, q<sub>0</sub>], kiểm tra xem mọi thời điểm + của đoạn luôn có chương trình chạy hay không. +* Cho đoạn thời gian [r<sub>0</sub>, s<sub>0</sub>], kiểm tra xem mọi thời điểm + của đoạn luôn không có chương trình chạy hay không. +* Tìm đoạn thời gian [p, q] dài nhất luôn có chương trình chạy. +* Tìm đoạn thời gian [r, s] dài nhất không có chương trình chạy. + +### Dữ liệu vào + +* Dòng đầu ghi số nguyên dương n. +* n dòng tiếp theo, với i từ 1 đến n, dòng thứ i + 1 ghi hai số tự nhiên + a<sub>i</sub> và b<sub>i</sub>. +* Dòng thứ n + 2 ghi hai số tự nhiên p<sub>0</sub>, q<sub>0</sub>. +* Dòng thứ n + 3 ghi hai số tự nhiên r<sub>0</sub>, s<sub>0</sub>. + +### Dữ liệu ra + +* Dòng đầu ghi 1 nếu đoạn thời gian [p<sub>0</sub>, q<sub>0</sub>] luôn có + chương trình chạy, ghi 0 nếu không phải. +* Dòng thứ hai ghi 1 nếu đoạn thời gian [r<sub>0</sub>, s<sub>0</sub>] không có + chương trình nào chạy, ghi 0 nếu có. +* Dòng thứ ba ghi hai số p và q. +* Dòng thứ tư ghi hai số r và s. + +### Giới hạn + +* n ≤ 200 +* 0 ≤ a<sub>i</sub> ≤ b<sub>i</sub> < 8640000 +* 0 ≤ p<sub>0</sub> ≤ q<sub>0</sub> < 8640000 +* 0 ≤ r<sub>0</sub> ≤ s<sub>0</sub> < 8640000 + +### Ví dụ + +| CTMT.OUT | CTMT.INP | +| --------------- | --------------- | +| 5 | 1 | +| 1000 10000 | 0 | +| 2000 30000 | 8000000 8500000 | +| 20000 100000 | 500001 7999999 | +| 200000 500000 | | +| 8000000 8500000 | | +| 1000 100000 | | +| 0 1000 | | + +## Xếp việc + +Cho n công việc, mỗi công việc phải làm trước một số công việc nào đó khác. + +Hãy xếp lịch thực hiện đủ n công việc. + +### Dữ liệu vào + +* Dòng đầu là số nguyên dương n. +* Các dòng tiếp, đầu dòng là số thứ tự i của một công việc, tiếp theo là số thứ + tự của các công việc phải làm sau i. + +### Dữ liệu ra + +Thứ thự thực hiện của n công việc in trên một dòng. + +### Giới hạn + +* 2 ≤ n ≤ 200 +* 1 ≤ i ≤ n + + +### Ví dụ + +| XEPVIEC.INP | XEPVIEC.OUT | +| ----------- | -------------------- | +| 10 | 1 2 7 9 4 6 3 5 8 10 | +| 1 2 3 | | +| 2 4 10 | | +| 3 5 | | +| 4 6 8 | | +| 5 8 | | +| 6 3 | | +| 7 9 5 | | +| 9 4 10 | | + +## Lập lịch gia công trên hai máy + +Một sản phẩm gồm n chi tiết, mỗi chi tiết phải gia công lần lượt trên hai máy a +và b. Thời gian thực hiện chi tiết i trên máy a là a<sub>i</sub>, trên máy b là +b<sub>i</sub>. + +Hãy xếp lịch hoàn thành sản phẩm với thời gian ngắn nhất. + +### Dữ liệu vào + +* Dòng đầu là số nguyên dương n. +* n dòng tiếp theo, dòng thứ i + 1 lần lượt là hai số nguyên dương + a<sub>i</sub>, b<sub>i</sub>. + +### Dữ liệu ra + +* Dòng đầu là thời gian ngắn nhất để hoàn thành sản phẩm. +* Dòng thứ hai ghi thứ tự gia công các chi tiết để hoàn thành trong thời gian + ngắn nhất này. + +### Ví dụ + +| LLGC2M.INP | LLGC2M.OUT | +| ---------- | ---------- | +| 5 | 26 | +| 3 3 | 1 4 2 5 3 | +| 4 3 | | +| 6 2 | | +| 5 7 | | +| 6 3 | | + +## Lập lịch chia n việc cho m máy + +Cho n công việc, công việc i hoàn thành trong thời gian t<sub>i</sub>. Các công +việc được thực hiện trên m máy có công suất như nhau. + +Hãy phân chia công việc cho các máy sao cho thời gian hoàn thành ngắn nhất. + +### Dữ liệu vào + +* Dòng đầu lần lượt ghi hai số nguyên dương n và m. +* Dòng thứ hai là n số nguyên dương t<sub>1</sub>, t<sub>2</sub>, ..., + t<sub>n</sub>. + +### Dữ liệu ra + +* Dòng đầu là thời gian ngắn nhất để hoàn thành công việc. +* m dòng tiếp theo, dòng thứ i + 1 ghi số thứ tự các công việc thực hiện trên + máy i để hoàn thành công việc trong thời gian ngắn nhất này. + +### Ví dụ + +| LLGCMM.INP | LLGCMM.OUT | +| ----------- | ---------- | +| 6 3 | 8 | +| 2 5 8 1 5 1 | 3 | +| | 2 4 1 | +| | 5 6 | |