129. LỊCH HỌC
Chương trình học của một trường đại học có n môn đánh số từ 1 tới n, mỗi môn phải học trong đúng một học kỳ và có một số môn bắt buộc phải học sau một số môn khác. Chương trình đào tạo được cho hợp lý để sinh viên có thể hoàn thành hết tất cả các môn học.
Yêu cầu:
Hãy lập một lịch học để sinh viên có thể hoàn thành hết tất cả các môn một cách nhanh nhất. Nếu có nhiều phương án xếp lịch thoả mãn điều trên thì chỉ ra phương án mà số môn xếp trong học kỳ học nhiều môn nhất là ít nhất.
Các học kỳ được đánh số từ 1 theo trình tự thời gian.
Dữ liệu: Vào từ file văn bản SCHEDULE.INP
-
Dòng 1: Chứa số n (1 n 200)
-
n dòng tiếp theo, dòng thứ i chứa danh sách các môn phải học trước môn i, ghi thêm một ký hiệu kết thúc là số 0.
Các số trên một dòng của Input File cách nhau ít nhất một dấu cách.
Kết quả: Ghi ra file văn bản SCHEDULE.OUT
-
Dòng 1: Ghi số học kỳ ít nhất để hoàn thành tất cả các môn và số môn học nhiều nhất trong một học kỳ.
-
n dòng tiếp theo, dòng thứ i ghi số hiệu học kỳ học môn i
Ví dụ:
SCHEDULE.INP
|
|
SCHEDULE.OUT
|
7
0
0
1 2 0
0
2 3 4 0
5 0
4 5 0
|
|
4 2
1
1
2
2
3
4
4
|
130. MÃ LIÊN HOÀN
Mỗi ô trên bàn cờ tổng quát kích thước nxn được mã hoá bằng các ký hiệu sau:
-
".": Ô tự do
-
"#": Ô cấm
-
"$": Ô tự do có một quân mã đang đứng
-
"@": Ô tự do tương ứng với một vị trí tập kết
Đội hình các quân mã được gọi là "liên hoàn" nếu chúng tạo thành một miền liên thông theo quan hệ mã giao chân.
Một lệnh hành quân là một phép di chuyển đội hình các quân mã thoả mãn:
-
Mỗi quân mã có thể đứng yên hoặc thực hiện đúng một nước đi theo luật cờ
-
Sau lệnh hành quân:
-
Các quân mã chỉ nằm trên các ô tự do
-
Mỗi ô chứa không quá một quân mã
-
Toàn đội hình các quân mã phải liên hoàn.
Yêu cầu:
Hãy tìm một số hữu hạn các lệnh hành quân để chuyển đội hình các quân mã về các ô @
Dữ liệu: Vào từ file văn bản KMOVE.INP
-
Dòng 1: Chứa số n
-
n dòng tiếp theo, dòng thứ i chứa n ký tự, ký tự thứ j là ký hiệu tương ứng với ô (i, j)
Kết quả: Ghi ra file văn bản KMOVE.OUT
Gồm một số dòng, mỗi dòng ghi một lệnh hành quân: gồm các bộ 4 số x1, y1, x2, y2 tượng trưng cho nước đi của một quân mã từ ô (x1, y1) đến ô (x2, y2)
Các số trên một dòng của Output file ghi cách nhau ít nhất một dấu cách
Ràng buộc: Trạng thái ban đầu của bàn cờ được cho để luôn tồn tại phương án thực hiện yêu cầu trên. 2 n 100; 1 Số ô $ = Số ô @ 100; Tập các ô $ cũng như tập các ô @ đều là đội hình mã liên hoàn.
Ví dụ:
KMOVE.INP
|
|
KMOVE.OUT
|
6
......
$..@#.
..$...
$..#@#
#....#
#..@##
|
|
3 3 4 5 4 1 3 3
4 5 6 4 3 3 4 5 2 1 3 3
4 5 2 4 3 3 4 5
|
131. TUYỂN NHÂN CÔNG
Có n công việc cần thực hiện và r loại thợ. Thợ loại i có thể không làm được việc j hoặc làm được với chi phí là cij.
Giả sử đã có sẵn m thợ hãy tìm cách tuyển thêm một số ít nhất thợ để giao cho mỗi thợ làm một việc sao cho có thể hoàn thành được tất cả các công việc. Nếu có nhiều cách tuyển thoả mãn yêu cầu trên thì chỉ ra cách tuyển có tổng chi phí thực hiện các công việc (trên phép phân công tối ưu) là cực tiểu.
Dữ liệu: Vào từ file văn bản ASSIGN.INP
-
Dòng 1: Chứa ba số m, n, r (1 m, n, r 400)
-
Dòng 2: Chứa m số, số thứ k là loại của thợ thứ k trong m thợ đã có
-
Các dòng tiếp theo, mỗi dòng ghi ba số i, j, cịj cho biết loại thợ i có thể làm được việc j với chi phí cij (0 cij 10000)
Các số trên một dòng của Input file cách nhau ít nhất một dấu cách
Kết quả: Ghi ra file văn bản ASSIGN.OUT
-
Dòng 1: Ghi số thợ cần thêm và chi phí phép phân công tối thiểu
-
n dòng tiếp theo, dòng thứ i ghi loại thợ được giao thực hiện việc i
Ràng buộc: Mỗi việc có ít nhất một loại thợ có thể thực hiện
Ví dụ:
ASSIGN.INP
|
ASSIGN.OUT
|
|
ASSIGN.INP
|
ASSIGN.OUT
|
10 4 6
1 3 5 5 5 5 5 5 5 5
1 1 10
1 2 10
1 3 10
3 1 10
3 2 10
3 3 10
2 2 9
2 1 8
4 2 6
4 3 5
6 4 0
|
2 25
1
3
4
6
|
|
1 2 3
1
1 1 10
1 2 30
3 1 1
3 2 25
2 2 40
|
1 31
3
1
|
Chia sẻ với bạn bè của bạn: |