Bai Toan 4-99 4. Đèn giao thông Bài toán Đường giao thông tại thành phố Dingilville được xây dựng theo một kiểu đặc biệt. Thành phố có những bục binh và các con đường nối các bục binh này. Giữa hai bục binh có ít nhất là một đường. Không có đường đi vào nối bục binh với chính nó. Các đường đi trong thành phố đều là hai chiều. Tại mỗi bục binh có treo một đèn, sẽ có màu xanh và đỏ thay đổi nhau. Đường đi giữa hai bục binh chỉ cho phép nếu các đèn tại 2 bục binh này cùng màu tại thời gian bắt đầu đi từ bục binh này đến bục binh kia. Nếu điều kiện trên không thoả mãn, các phương tiện cần phải chờ tại các bục binh. Người ta cho môt bản đồ thành phố bao gồm: • Thời gian chạy trên các đường (số nguyên) • Thời gian đèn sáng của các màu tại mỗi bục binh (số nguyên) • Màu ban đầu tại mỗi bục binh và thời gian còn lại cho đến khi đổi màu tại bục binh này. Yêu cầu của bài toán là tìm một đường đi với ít thời gian nhất từ một bục binh xuất phát ban đầu đến một bục binh đích. Tr-ờng hợp có nhưiều đường đi chỉ cần chỉ ra một trong chúng. Hạn chế kỹ thuật • 2 <= N <= 300 với N - số các bục binh. Các bục binh được đánh số từ 1 đến N. • 1 <= M <= 14000 với M - số các đường đi. • 1 <= lij <= 100 với lij - thời gian cần thiết để đi từ bục binh i đến bục binh j theo một con đường nối i, j. • 1 <= tic <= 100 với tic - là thời gian cho màu C tại bục binh i, với C là hoặc B - xanh, P - đỏ. • 1 <= ric <= tic với ric - thời gian còn lại của màu ban đầu C tại bục binh i. Input Input là tệp lights.inp • Dòng đầu tiên ghi 2 số: đó là mã số của bục binh xuất phát và bục binh đích cần tìm đường đi. • Dòng thứ 2 ghi hai số N, M. • N dòng tiếp theo ghi các thông số của N bục binh. Các thông số của bục binh i bao gồm: Ci, ric, tiB, tiP ở đây Ci là 'B' hoặc'P' chỉ ra màu ban đầucủa bục binh i. Page 1 Bai Toan 6-99 6. Chọn vùng đất Bài toán Thành phố Dingilville cần tìm một mảnh đất để xây dựng sân bay. Bản đồ thành phố là một lưới hình chữ nhật, mỗi ô l-ới biểu diễn bởi một đơn vị diện tích vuông, được xác định bởi các toạ độ (x,y), ở đây x - toạ độ ngang, y - toạ độ dọc. Chiều cao của mỗi diện tích vuông được cho trên bản đồ. Yêu cầu của bài toán là tìm ra được một vùng hình chữ nhật các ô vuông với diện tích lớn nhất (chứa nhiều ô vuông nhất) sao cho: a) Hiệu số chiều cao của ô vuông cao nhưất và ô vuông thấp nhất trong vùng sẽ nhỏ hơn hoặc bằng một hằng số C. b) Chiều rộng (chiều theo hướng tây - đông) của vùng luôn nhỏ hơn hoặc bằng 100. Trường hợp có nhiều vùng như- vậy thì chỉ cần chỉ ra 1 trong chúng. Hạn chế kỹ thuật • 1 <= U <= 700, 1 <= V <= 700 với U,V - chiều rộng (tây - đông) và cao (nam - bắc) của bản đồ. • 0 <= C <= 10 • - 30000 <= Hxy <= 30000 với Hxy - là số nguyên chỉ ra chiều cao của ô vuông tại địa chỉ (x, y), với 1 <= x <= U, 1 <= x <= V. • Toạ độ góc Tây- Nam của bản đồ là (1,1), toạ độ góc Đông - Bắc của bản đồ là U, V. Input Input là tệp văn bản land.inp • Dòng đầu tiên ghi các số U, V và C • V dòng tiếp theo, mỗi dòng ghi các số Hxy với x=1,2 .U Output Output file tên là land.out chứa một dòng có 4 số nguyên Xmin, Ymin, Xmax, Ymax với (Xmin, Ymin) là toạ độ góc trái dưới, (Xmax, Ymax) là toạ độ góc phải trên của vùng tìm được. Ví dụ Page 1 3 Trắc nghiệm Chương trình của bạn chỉ được phép chạy trong 60 giây. Page 2 Bai Toan 5-99 5. Làm phẳng Bài toán Một bộ bài được cho bởi N đống, mỗi đống chứa một số quân bài. Xem hình 1. Các đống được ký hiệu từ 1 đến N. Ta định nghĩa một nước đi khi nói p và chỉ ra số m. Khi đó m quân bài sẽ được chuyển từ đống p sang tất cả các đống hàng xóm. Đống p có hai hàng xóm là p-1 và p+1 nếu 1 < p < N, và có một hàng xóm là 2 nếu p=1, một hàng xóm là N-1 nếu p=N. Để ý rằng nước đi như- vậy chỉ tồn tại nếu đống p có ít nhất 2m quân bài nếu p có hai hàng xóm và m quân bài nếu p có một hàng xóm. Bài toán đặt ra là "làm phẳng" tất cả các đống sao cho các đống có số quân bài như- nhau sau khi sử dụng ít nước đi nhất. Trong trường hợp có nhiều nghiệm chỉ cần chỉ ra 1 trong chúng. Hình 1. Năm đống với 0, 7, 8, 1 và 4 quân bài Hình 2. Bộ bài sau nước đi: p=2, m=2 Hạn chế kỹ thuật • Dữ liệu đã cho bảo đảm rằng để giải quyết bài toán trên phải sử dụng tối đa là 10000 nước đi. • 2 <= N <= 200 • 0 <= Ci <= 2000 với Ci là số quân bài ban đầu của đống i với 1 <= i <= N Input Input là file text flat.inp có hai dòng Dò đầ tiê N Page 1 2 • Dòng đầu tiên: N • Dòng thứ hai có N số nguyên là các giá trị Ci Output Output là tệp văn bản flat.out • Dòng đầu tiên: số các nước đi (gọi số này là M) • Mỗi dòng tiếp theo trong M dòng: các số tương ứng p, m Số thứ tự các bước đi đúng theo thứ tự các dòng được mô tả ở trên. Ví dụ flat.inp 5 0 7 8 1 4 flat.out 5 5 2 3 4 2 4 3 1 4 2 Trắc nghiệm Chương trình của bạn chỉ được phép chạy trong 3 giây. Để đạt được điểm tối đa A cho các test, số các nước đi của bạn x phải nhỏ hơn số B do chương trình kiểm tra đ-ã ra. Chú ý rằng, giá trị B của chương trình kiểm tra có thể không là tối ưu. Thực tế, B được chọn dựa trên một thuật toán có chiến lược đơn giản với không có nước đi nào thừa và phụ thuộc vào giá trị trung bình của các quân bài trong các đống. Bạn có thể đạt điểm theo cách tính sau đây: Page 2 1 • M dòng tiếp theo ghi các thông tin của M đường đi, mỗi dòng ghi các thông số: i, j, lij với ý nghĩa đường này kết nối các bục binh i và j. Output Output là tệp lights.out Nếu đường đi tồn tại: • Dòng đầu tiên ghi thời gian tối thiểu cho đường đi từ bục binh xuất phát đến bục binh đích. • Dòng thứ hai ghi danh sách các bục binh trên đường đi tối ưu đó, bắt đầu từ bục binh xuất phát và kết thúc bởi bục binh đích. Nếu đường đi không tồn tại: • Một dòng ghi số 0 Ví dụ Trắc nghiệm Chương trình của bạn chỉ được phép chạy trong 2 giây. Page 2 . trị B của chương trình kiểm tra có thể không là tối ưu. Thực tế, B được chọn dựa trên một thuật toán có chiến lược đơn giản với không có nước đi nào thừa. Không có đường đi vào nối bục binh với chính nó. Các đường đi trong thành phố đều là hai chiều. Tại mỗi bục binh có treo một đèn, sẽ có màu xanh và đỏ thay