Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 140 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
140
Dung lượng
1,54 MB
Nội dung
Lê Minh Hoàng 150+ Bài Toán Tin Đại học Sư Phạm Hà Nội 2004 – 2006 List 150+ Bài Toán Tin – Lê Minh Hoàng 001 TÍNH TOÁN SONG SONG 002 BẢNG SỐ 003 CARGO 004 DÃY CON 005 XÂU FIBINACCI 006 VÕNG SỐ NGUYÊN TỐ 007 ĐÔI BẠN 10 008 CỬA SỔ VĂN BẢN 11 009 VÒNG TRÒN CON 12 010 BỐ TRÍ PHÕNG HỌP 13 011 MUA VÉ TÀU HOẢ 14 012 XIN CHỮ KÝ .15 013 LẮC NẠM KIM CƢƠNG 16 014 RẢI SỎI 17 015 ĐIỆP VIÊN 18 016 KHOẢNG CÁCH GIỮA HAI XÂU 19 017 XẾP LẠI BẢNG SỐ 20 018 THĂM KHU TRIỂN LÃM 21 019 DÒ MÌN .23 020 XẾP LẠI DÃY SỐ 24 021 CO DÃY BÁT PHÂN 25 022 TUYẾN BAY .26 023 MÔ PHỎNG CÁC PHÉP TOÁN 27 024 DÃY CON CỦA DÃY NHỊ PHÂN .28 025 TỔNG CÁC CHỮ SỐ 29 026 ĐƢỜNG ĐI NHIỀU ĐIỂM NHẤT .30 027 KẾ HOẠCH THUÊ NHÂN CÔNG .31 028 DÃY CÁC HÌNH CHỮ NHẬT 32 029 SƠN CỘT 33 030 CẮT VẢI 34 031 CHIA KẸO 35 032 BẢNG QUAN HỆ 36 033 ĐỌNG NƢỚC 37 034 TRẢ TIỀN 38 035 HOÁN VỊ CHỮ CÁI 39 036 DỰ TIỆC BÀN TRÕN 40 037 TRÁO BÀI 41 038 ĐỐI XỨNG HOÁ .42 039 MẠNG MÁY TÍNH 43 040 LẬT ĐÔ MI NÔ 44 041 SỐ NHỊ PHÂN LỚN NHẤT .45 042 SƠN CÁC HÌNH CHỮ NHẬT 46 043 PHÂN HOẠCH TAM GIÁC .47 044 CÁC THÀNH PHẦN LIÊN THÔNG MẠNH .48 045 MÃ GRAY 49 046 DỰ ÁN XÂY CẦU .50 047 BẢO TỒN ĐỘNG VẬT HOANG DÃ 51 048 PHÁ TƢỜNG .52 049 TRUYỀN TIN TRÊN MẠNG .53 050 HÌNH VUÔNG CỰC ĐẠI 54 051 ĐOÀN XE QUA CẦU 55 052 SỐ LƢỢNG 56 053 THÁM HIỂM LÕNG ĐẤT 57 054 THỨ TỰ TỪ ĐIỂN .58 055 DÃY LỆCH 59 056 RÚT GỌN DÃY SỐ 60 057 BUÔN TIỀN .61 058 DÃY NGOẶC 62 059 THẰNG BỜM VÀ PHÖ ÔNG 63 060 SỐ THẬP PHÂN 64 061 DANH SÁCH VÒNG 65 062 TÍNH DIỆN TÍCH 66 063 THANG MÁY 67 064 TRỌNG SỐ XÂU .68 065 PHỐ MAY MẮN 69 066 TÍN HIỆU GIAO THÔNG 70 067 PHÂN NHÓM 71 068 TUA DU LỊCH RẺ NHẤT 72 069 DU LỊCH NHIỀU TUA NHẤT 73 070 PHÂN CÔNG .74 071 NHẮN TIN 75 072 CÁC SỐ ĐIỆN THOẠI .76 073 GIÁ TRỊ LỚN NHẤT 77 074 NÖT GIAO THÔNG TRỌNG ĐIỂM 78 075 TẬP KẾT 79 076 MỜI KHÁCH DỰ TIỆC .80 077 KHÔI PHỤC NGOẶC 81 078 DÂY XÍCH 82 079 PHÂN CÔNG .83 080 DÂY CUNG .84 081 MÊ CUNG 85 082 DU LỊCH 86 083 SỬA ĐƢỜNG 87 084 ĐI THI 88 085 MÈO KIỂU ÖC 89 086 THÀNH PHỐ TRÊN SAO HOẢ .90 087 RÔ BỐT XÂY NHÀ 91 088 TƢ DUY KIỂU ÖC 92 089 8-3, TẶNG HOA KIỂU ÖC 93 090 MÃ HOÁ BURROWS WHEELER .94 091 BAO LỒI 95 092 GIAI THỪA .96 093 PHỦ SÓNG 97 094 DÃY NGHỊCH THẾ 98 095 MUA HÀNG 99 096 XÂU CON CHUNG DÀI NHẤT 100 097 DÃY CON NGẮN NHẤT 101 098 BIẾN ĐỔI DÃY SỐ 102 099 GIÁ TRỊ NHỎ NHẤT 103 100 NỐI DÂY 104 101 GHI ĐĨA 105 102 ĐƢỜNG ĐI THOÁT MÊ CUNG 106 103 CHU TRÌNH CƠ BẢN 107 104 CỘT CÂY SỐ 108 105 LỊCH SỬA CHỮA Ô TÔ 109 106 KHỚP VÀ CẦU 110 107 HÀNG ĐỢI VỚI ĐỘ ƢU TIÊN 111 108 HỘI CHỢ 112 109 SERIE A 113 110 SỐ HIỆU VÀ GIÁ TRỊ 114 111 PHÉP CO 115 112 CHỮA NGOẶC 116 113 MÃ HOÁ BURROWS WHEELER 117 114 MẠNG RÖT GỌN 118 115 DÃY NGOẶC 119 116 LẮP RÁP MÁY TÍNH 120 117 ĐƢỜNG MỘT CHIỀU 121 118 PHỦ 122 119 THÁP GẠCH 123 120 THU THUẾ 124 121 PHÂN CÔNG 125 122 XÂU CON 126 123 LĂN SÖC SẮC 127 124 VỆ SĨ 128 125 GIAO LƢU 129 126 GIAO LƢU 130 127 ĐẠI DIỆN 131 128 HỘI CHỢ 132 129 LỊCH HỌC 133 130 MÃ LIÊN HOÀN 134 131 TUYỂN NHÂN CÔNG 135 132 ĐƢỜNG TRÕN 136 133 ĐOẠN 137 134 HỌC BỔNG 138 135 ĐOẠN DƢƠNG 139 136 TÍN HIỆU GIAO THÔNG 140 137 PHỦ 141 138 DI CHUYỂN RÔBỐT 142 139 TRẠM NGHỈ 143 140 CHIA CÂN BẰNG 145 141 LĂN XÖC XẮC 146 142 CHUYỂN HÀNG 147 143 GHÉT NHAU NÉM ĐÁ 148 144 NỐI DÂY 149 145 MY LAST INVENTION 150 146 CÂY KHUNG NHỎ NHẤT 151 147 MẠNG MÁY TÍNH 152 148 DẴY ĐƠN ĐIỆU TĂNG DÀI NHẤT 153 149 LUỒNG CỰC ĐẠI TRÊN MẠNG 154 150 BỘ GHÉP CỰC ĐẠI 155 151 BỘ GHÉP ĐẦY ĐỦ TRỌNG SỐ CỰC TIỂU 156 152 TUYỂN NHÂN CÔNG 157 153 DÀN ĐÈN 158 001 TÍNH TOÁN SONG SONG Biểu thức đủ dãy ký tự gồm biến ký hiệu chữ thƣờng tiếng Anh: a z, phép toán cộng ký hiệu +, nhân ký hiệu * dấu ngoặc (,) Đƣợc định nghĩa nhƣ sau: i) Mỗi biến a,b, ,z biểu thức đủ ii) Nếu X Y biểu thức đủ (X+Y) (X*Y) biểu thức đủ iii) Những biểu thức không xây dựng đƣợc theo nguyên tắc không biểu thức đủ VD: Theo cách định nghĩa (a+(b+ (c+d))) ((a+b)+(c*d)) biểu thức đủ Cho biết thời gian tính phép + P, thời gian tính phép * Q, người ta định nghĩa thời gian tính toán biểu thức đủ sau: 1„h Nếu biểu thức đủ gồm biến (a z) thời gian tính toán 2„h Nếu X Y biểu thức đủ; thời gian tính X TX thời gian tính Y TY thời gian tính (X+Y) max(TX,TY)+P thời gian tính (X*Y) max(TX,TY)+Q Từ biểu thức đủ người ta biến đổi biểu thức tương đương luật: 1„h Giao hoán: (X+Y) „® (Y+X); (X*Y) „® (Y*X) 2„h Kết hợp: (X+(Y+Z)) „® ((X+Y)+Z); (X*(Y*Z)) „® ((X*Y)*Z) Yêu cầu: Cho trước biểu thức đủ E dạng xâu ký tự viết chương trình: Tìm thời gian tính toán biểu thức E Hãy biến đổi biểu thức E thành biểu thức E' tƣơng đƣơng với cho thời gian tính E' Dữ liệu vào đặt file văn PO.INP sau: 1„h Dòng thứ ghi số P, Q cách dấu cách (P,Q„T100) 2„h Tiếp theo số dòng, dòng ghi biểu thức đủ Kết đặt file văn PO.OUT nhƣ sau: Với biểu thức E file PO.INP ghi file PO.OUT dòng 1„h Dòng thứ nhất: Ghi thời gian tính toán E 2„h Dòng thứ hai: Ghi biểu thức E' 3„h Dòng thứ ba: Ghi thời gian tính toán E' Chú ý: Để cho gọn, biểu thức đủ input/output file viết mà không cần đến cặp dấu ngoặc cùng, liệu vào coi đắn không cần kiểm tra Ví dụ: PO.INP PO.OUT 1 a+(a+(a+(a+(a+(a+ (a+a)))))) (((a+(b+ (c+d)))*e)*f) (((((a*b)*c)*d) +e)+(f*g)) ((a+a)+(a+a))+((a+a)+(a+a)) (e*f)*((a+b)+(c+d)) ((a*b)*(c*d))+(e+(f*g)) 002 BẢNG SỐ Cho bảng hình chữ nhật kích thƣớc M x N với M, N nguyên dƣơng M, N „T 50 Hình chữ nhật đƣợc chia thành M x N ô vuông với kích thƣớc đơn vị đƣờng song song với cạnh, ô vuông [i, j] ghi số nguyên A[i, j] (2 „T A[i, j] „T 50) Từ mảng A ta lập mảng B mà B[i, j] đƣợc xây dựng nhƣ sau: Biểu diễn số A[i, j] thành tổng số nguyên tố với ràng buộc: biểu diễn có nhiều số nguyên tố xuất hai lần Trong cách biểu diễn, chọn biểu diễn nhiều hạng tử B[i, j] số số hạng biểu diễn kể bội (nếu có) Ví dụ: Nếu A[i, j] = 10 = + + B[i, j] = 3; Nếu A[i, j] = 12 = + + + B[i, j] = 4; Chú ý: Không đƣợc biểu diễn A[i, j] = 10 = + + + + để có B[i, j] = nhƣ không thoả mãn ràng buộc a) Dữ liệu vào đƣợc cho Text file INP.B1 đó: 1„h Dòng đầu ghi hai số M, N 2„h M dòng sau, dòng thứ i ghi N phần tử dòng i bảng A: A[i, 1], A[i, 2], , A[i, N] hai phần tử liên tiếp cách dấu trống b) Kết ghi Text file OUT.B1: Giá trị bảng B, dòng bảng ghi dòng file, hai phần tử liên tiếp cách dấu trống c) Hãy tìm hình chữ nhật lớn đƣợc tạo ô mang giá trị bảng B Ghi tiếp file OUT.B1 dòng gồm số là: diện tích lớn tìm đƣợc, toạ độ trái dƣới phải hình chữ nhật có diện tích lớn 003 CARGO Bản đồ kho hàng hình chữ nhật kích thƣớc mxn đƣợc chia thành ô vuông đơn vị (m hàng, n cột: hàng đánh số từ xuống dƣới, cột đánh số từ trái qua phải) Trên ô đồ có số ký hiệu: 1„h Các ký hiệu C đánh dấu ô có kiện hàng xếp sẵn, 2„h Một ký hiệu R: Đánh dấu ô có xe đẩy 3„h Một ký hiệu B: Đánh dấu ô chứa kiện hàng cần xếp 4„h Một ký hiệu T: Đánh dấu vị trí ô mà cần phải xếp kiện hàng B vào ô 5„h Các ký hiệu dấu chấm ".": Cho biết ô trống Cần phải dùng xe đẩy R để đẩy kiện hàng B đến vị trí T cho trình di chuyển đẩy hàng, không chạm vào kiện hàng xếp sẵn (Xe đẩy di chuyển sang ô chung cạnh với ô đứng) Nếu có nhiều phương án phương án cho xe đẩy phải di chuyển qua bước Các hướng di chuyển hình CC C C C C C C C T C C C C C C C C C R B Dữ liệu: Vào từ file văn CARGO.INP 1„h Dòng 1: Ghi hai số nguyên dƣơng m, n cách dấu cách (m, n „T 80) 2„h m dòng tiếp theo, dòng thứ i ghi đủ n ký hiệu hàng thứ i đồ theo thứ tự từ trái qua phải Các ký hiệu đƣợc ghi liền Kết quả: Ghi file văn CARGO.OUT 1„h Dòng 1: Ghi số bƣớc di chuyển xe đẩy để thực mục đích yêu cầu, phƣơng án khả thi dòng ghi số -1 2„h Dòng 2: Nếu có phƣơng án khả thi dòng ghi ký tự liền thể hƣớng chuyển xe đẩy R (East, West, South, North) Các chữ thƣờng (e,w,s,n) thể bƣớc di chuyển không đẩy hàng, chữ in hoa (E,W,S,N) thể bƣớc di chuyển có đẩy hàng Ví dụ: CARGO.INP CARGO.OUT CARGO.INP CARGO.OUT 8 CCCCCCCC C T CCC C.CCCCCR B 23 sswwwwwwNNNwn EseNwnEEEE T CC.CCC.C C CCBCCC.C R 22 eeNNNssseeeen nnnwwwWWW Chú ý: Trong thƣ mục chƣơng trình có hai file SUPPORT.EXE DEMO.EXE, bạn sử dụng chúng nhƣ công cụ trợ giúp với chức sau: (Phải chạy từ dấu nhắc DOS) 1„h SUPPORT.EXE đƣợc sử dụng bạn có Input File CARGO.INP Output File CARGO.OUT tƣơng ứng, chƣơng trình cho phép bạn thể trình đẩy hàng với bƣớc Output File ghi - Hiển thị trực quan hình đồ hoạ 2„h DEMO.EXE đƣợc sử dụng bạn có Input File, chƣơng trình giải toán mô tả trực quan bƣớc di chuyển để thực yêu cầu Khi test bài, phép di chuyển bạn luật thực đƣợc yêu cầu, điểm bạn cho test đƣợc tính bằng: Số bƣớc di chuyển xe đẩy đƣợc chƣơng trình DEMO.EXE sử dụng/ Số bƣớc chƣơng trình bạn sử dụng 004 DÃY CON N W * E S & Dữ liệu: Vào từ file văn HORSEMAN.INP 1„h Dòng đầu tiên: Chứa hai số p, q cách dấu cách 2„h p dòng tiếp theo, dòng thứ i chứa q ký tự, ký tự thứ j ký hiệu ghi ô (i, j) đồ Kết quả: Ghi file văn HORSEMAN.OUT 1„h Dòng đầu tiên: Ghi thời gian nhanh để tất kỵ sĩ ngựa tới trạm nghỉ tƣơng ứng 2„h 2n dòng tiếp theo, hai dòng ghi hành trình kỵ sĩ: 3„Y Dòng 1: Ghi hai số x, y cách dấu cách vị trí ô (x, y) kỵ sĩ 4„Y Dòng 2: Ghi dãy ký tự tƣợng trƣng cho dãy bƣớc kỵ sĩ từ ô (x, y) theo thứ tự đến trạm nghỉ 5„h 2n dòng tiếp theo, hai dòng ghi hành trình ngựa: 6„Y Dòng 1: Ghi hai số u, v cách dấu cách vị trí ô (u, v) ngựa 7„Y Dòng 2: Ghi dãy ký tự tƣợng trƣng cho dãy bƣớc ngựa từ ô (u, v) theo thứ tự đến trạm nghỉ Ràng buộc: 1„h „T p, q „T 100 2„h „T n = số ô "&" = số ô "*" „T 100 3„h n „T m = số ô "@" „T 100 4„h Luôn có phƣơng án thực yêu cầu đề Ví dụ: ( Kết file Output sai ! ) Đáp án tối ưu phải ! HORSEMA N.INP HORSEMAN OUT &&.* .%% @@.@.@ & * * SSW NN 5 NNE 3 1727 140 CHIA CÂN BẰNG Xét đồ thị vô hƣớng liên thông G = (V, E) có n đỉnh m cạnh, đỉnh đƣợc đánh số từ tới n Hãy bỏ số cạnh đồ thị cho: 11 Đồ thị lại có thành phần liên thông 22 Đỉnh đỉnh n không thuộc thành phần liên thông 33 Trong phƣơng án thoả mãn hai điều kiện trên, phƣơng án mà độ chênh lệch số đỉnh hai thành phần liên thông nhỏ Dữ liệu: Vào từ file văn BALANCE.INP 1„h Dòng 1: Chứa hai số n, m (2 „T n „T 300) 2„h m dòng tiếp theo, dòng chứa hai số u, v tƣơng ứng với cạnh (u, v) đồ thị Kết quả: Ghi file văn BALANCE.OUT 1„h Dòng 1: Ghi số cạnh đƣợc bỏ (k) 2„h k dòng tiếp theo, dòng ghi hai đỉnh tƣơng ứng với cạnh đƣợc bỏ Ví dụ: BALANCE.INP 321223 BALANCE.OUT 112 141 LĂN XÖC XẮC Cho lƣới ô vuông đơn vị kích thƣớc mxn, ô ghi số tự nhiên „T Có súc sắc (hình lập phƣơng cạnh đơn vị) nằm ô (x, y) mang số Các mặt súc sắc đƣợc ghi số nguyên dƣơng từ đến 6: mặt mang số 1, mặt bên hƣớng mép lƣới mang số 2, mặt bên hƣớng mép trái lƣới mang số 3, tổng hai số ghi hai mặt đối diện (Xem hình vẽ) Cho phép lăn súc sắc sang ô kề cạnh Sau phép lăn nhƣ vậy, mặt súc sắc trở thành mặt bên tƣơng ứng với hƣớng di chuyển mặt bên theo hƣớng di chuyển trở thành mặt đáy Một phép lăn đƣợc gọi hợp lệ đảm bảo số ghi ô súc sắc đứng 7, với số ghi mặt đáy súc sắc Nhƣ ví dụ trên, ta lăn lên trên, sang phải hay sang trái nhƣng lăn xuống dƣới Yêu cầu: Hãy số hữu hạn phép lăn hợp lệ để lăn súc sắc ô biên lưới, có nhiều phương án thực phương án mà tổng số ghi mặt súc sắc sau bước di chuyển cực tiểu Dữ liệu: Vào từ file văn ROLL.INP 1„h Dòng 1: Chứa số m, n, x, y (1 < x < m „T 300; < y < n „T 300) 2„h m dòng tiếp theo, dòng thứ i chứa n số mà số thứ j số ghi ô (i, j) lƣới Kết quả: Ghi file văn ROLL.OUT Gồm dòng chứa dãy liên tiếp ký tự, ký tự thứ k L, R, U D tƣơng ứng với phép lăn bƣớc thứ k lăn sang trái, lăn sang phải, lăn lên hay lăn xuống dƣới Ví dụ ROLL.I NP 3 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 ROLL.OU T URDDLUL L 142 CHUYỂN HÀNG Bản đồ kho hàng hình chữ nhật kích thƣớc mxn đƣợc chia thành ô vuông đơn vị (m hàng, n cột: hàng đánh số từ xuống dƣới, cột đánh số từ trái qua phải) Trên ô đồ có số ký hiệu: 1„h Các ký hiệu # đánh dấu ô có kiện hàng xếp sẵn, 2„h Một ký hiệu *: Đánh dấu ô có rô bốt 3„h Một ký hiệu $: Đánh dấu ô chứa kiện hàng cần xếp 4„h Một ký hiệu @: Đánh dấu vị trí ô mà cần phải xếp kiện hàng B vào ô 5„h Các ký hiệu dấu chấm ".": Cho biết ô trống Tại thời điểm, rô bốt thực động tác ký hiệu là: 1„h L, R, U, D: Tƣơng ứng với phép di chuyển rô bốt đồ: sang trái, sang phải, lên trên, xuống dƣới Thực phép di chuyển công 2„h +, -: Chỉ đƣợc thực rô bốt đứng ô bên cạnh kiện hàng $ Khi thực thao tác +, rô bốt đứng yên đẩy kiện hàng $ làm kiện hàng trƣợt theo hƣớng đẩy, đến chạm kiện hàng khác tƣờng nhà kho dừng lại Khi thực thao tác -, rô bốt kéo kiện hàng $ phía lùi lại ô theo hƣớng kéo Thực thao tác đẩy kéo C công Luật: Rô bốt đƣợc di chuyển vào ô không chứa hàng kho Hãy tìm cách hướng dẫn rô bốt thực thao tác để đưa kiện hàng $ vị trí @ cho số công phải dùng Dữ liệu: Vào từ file văn CARGO.INP 1„h Dòng 1: Ghi ba số nguyên dƣơng m, n, C (m, n „T 100; c „T 100) 2„h m dòng tiếp theo, dòng thứ i ghi đủ n ký hiệu hàng thứ i đồ theo thứ tự từ trái qua phải Các ký hiệu đƣợc ghi liền Kết quả: Ghi file văn CARGO.OUT 1„h Dòng 1: Ghi số công cần thực 2„h Dòng 2: Một dãy liên tiếp ký tự „¡ {L, R, U, D, +, -} thể dãy động tác cần thực Rô bốt Ràng buộc: Luôn có phƣơng án thực yêu cầu đề Ví dụ: CARGO.INP CARGO.OUT CARGO.INP CARGO.OUT ### ### *$ ## ####.### #### ## #@ ## ######## 23 +RRRRUR+DDDRD+ 10 10 # ####.#.## *$ .# #######.## ####### #######.# #@ #######.## ########## ########## 34 +RRRRRRRLUURRD+DDDDDURRDDL+ 143 GHÉT NHAU NÉM ĐÁ Liz Lilly ngƣời bạn thân, nhƣng họ cãi lộn định chia tay "Tôi không muốn nhìn thấy bạn nữa, đặt tảng đá để có đâu từ nhà, nhìn thấy mặt bạn" - Cả hai nói L&L sống làng nhỏ đƣợc chia thành lƣới ô vuông nxn Nhà Liz ô (1, 1) nhà Lilly ô (n, n) Mỗi ô lƣới mang ký hiệu: 1„h ".": Vùng đất (Land) 2„h "X": Hồ (Lake) 3„h "*": Tảng đá (Rock) Mỗi ngƣời di chuyển từ ô sang ô kề cạnh vùng đất, đứng ô (x, y), họ nhìn thấy ô (x', y') nếu: 1„h Ô (x', y') hàng cột với ô (x, y) 2„h Khoảng cách từ ô (x, y) đến ô (x', y') không k 3„h Không có tảng đá chắn tầm mắt Cả hai kẻ lƣời biếng, họ muốn đặt thêm số tảng đá Đồng thời, tảng đá phải đặt cách nhà ngƣời khoảng cách tối thiểu m Lưu ý: Khoảng cách hai ô (x1, y1) (x2, y2) quy ước „nx1 - x2„n + „ny1 - y2„n Hãy cách đặt tảng đá thoả mãn yêu cầu hai người Dữ liệu: Vào từ file văn FAREWELL.INP 1„h Dòng 1: Chứa số n, k, m (5 „T n „T 20; „T k, m „T n) cách dấu cách 2„h n dòng tiếp theo, dòng thứ i chứa n ký tự liên tiếp mà ký tự thứ j ký hiệu ô (i, j) lƣới Kết quả: Ghi file văn FAREWELL.OUT 1„h Dòng 1: Ghi số tảng đá phải đặt, trƣờng hợp phƣơng án dòng ghi số -1 2„h Trong trƣờng hợp có phƣơng án khả thi n dòng tiếp theo, dòng thứ i ghi n ký tự liên tiếp mà ký tự thứ j ký hiệu ô (i, j) lƣới sau đặt đá Lƣu ý ta dùng ký hiệu * cho tảng đá có dùng ký hiệu "#" cho tảng đá đặt thêm Ví dụ FAREWELL INP 4 * *X **.*.X * XX * FAREWELL.O UT #* *X **#*.X * XX * FAREWELL.I NP XXXXXX X X .X X X X .X X XXXXXX FAREWELL.O UT # .XXXXXX X X #X X X X# X X XXXXXX # 144 NỐI DÂY Xét hình chữ nhật R hệ trục toạ độ Decattes vuông góc có đỉnh (0, 0); (m, 0); (m, n) (0, n) Ta gọi đoạn nối đoạn thẳng nằm R, độ dài đơn vị mà toạ độ hai đầu mút số nguyên (dễ thấy đoạn nối có hai dạng: (x, y)-(x+1, y) (x, y)-(x, y+1) Ban đầu có vài đoạn nối đƣợc vẽ sẵn R Có hai ngƣời chơi, ngƣời đến lƣợt đƣợc quyền vẽ đoạn nối, đoạn với đoạn nối vẽ khép kín thêm đƣợc ô vuông đơn vị ngƣời chơi đƣợc chiếm (1 2) ô vuông phải tiếp tục thao tác nhƣ : 1„h Hoặc tất đoạn nối đƣợc vẽ „± trò chơi kết thúc 2„h Hoặc đoạn nối chƣa vẽ nhƣng bƣớc nối cuối không chiếm đƣợc thêm ô vuông đơn vị nào, trò chơi đƣợc tiếp tục với ngƣời luật chơi tƣơng tự Giả sử chương trình bạn tham gia trò chơi với vai trò người trước, người chương trình khác Hãy lập trình thể chiến thuật chơi trò chơi kết thúc, số ô chương trình bạn chiếm nhiều Dữ liệu: Vào từ file văn CELLS.INP 1„h Dòng 1: Chứa hai số m, n (1 „T m, n „T 100) 2„h Các dòng tiếp, dòng ghi số x1, y1, x2, y2 thể đoạn nối vẽ sẵn: (x1, y1)-(x2, y2) Kết lượt bạn phải ghi vào file văn PLAYER1.DAT gồm số dòng, dòng thứ i ghi số x1(i), y1(i), x2(i), y2(i) tƣợng trƣng cho đoạn nối (x1(i), y1(i)) - (x2(i), y2(i)) đoạn nối thứ i lƣợt Chƣơng trình bạn phải khai báo sử dụng thƣ viện CELLS.TPU, sau lƣợt đi, tạo file PLAYER1.DAT, bạn phải gọi thủ tục InterChange thƣ viện để nhận đƣợc file văn PLAYER2.DAT có khuôn dạng nhƣ PLAYER1.DAT chứa thông tin lƣợt máy lƣợt bạn Lƣu ý trƣờng hợp trò chơi kết thúc (sau lƣợt bạn hay máy), thủ tục InterChange dừng chƣơng trình tức khắc để thống kê số ô chiếm đƣợc hai bên X start 0 1 2 3 X Player CELLS.INP 1 2 2 3 X 0 1 3 2 3 0 1 2 PLAYER1.DA T 2 3 3 X O O X X O O O player PLAYER2.DA T 3 2 1 1 1 1 Player I -5 Player II 145 MY LAST INVENTION "I'm not ashamed to confess that I'm ignorant of what I don't know" Cicero IOI 3003 diễn n + ngày, toán IOI đƣợc đánh số từ tới n2+n đƣợc phân bố vào ngày thi theo lịch sau (mỗi ngày thi có n toán): Ngày 1: Các toán từ tới n Ngày 2: Các toán từ n + tới 2n Ngày i: Các toán từ (i - 1).n + tới i.n Ngày n+1: Các toán từ n2 + tới n2+n Các thi có k dạng, thứ j có dạng rj (1 „T rj „T k) Thể thức thi đƣợc thông báo cho đoàn nhƣ sau: 1„h Mỗi đoàn có n + học sinh tham gia 2„h Hàng ngày, Ban tổ chức đƣa học sinh đoàn tham quan thành phố, việc chọn học sinh cho tham quan quyền trƣởng đoàn, nhƣng phải đảm bảo điều kiện: Cho đến IOI kết thúc, học sinh đoàn đƣợc tham quan thành phố Nhƣ ngày đoàn lại n học sinh tham gia thi, việc giao cho học sinh làm quyền phó đoàn nhƣng học sinh đƣợc giao hai học sinh khác phải nhận hai khác 3„h Kết thúc IOI, điểm đồng đội đoàn đƣợc tính tổng điểm tất lời giải toán cho Các thầy giáo trƣởng, phó đoàn Việt Nam dự đoán học sinh thứ i đoàn làm toán dạng j thu đƣợc số điểm cij (cij = tƣơng đƣơng với lời dự đoán học sinh thứ i không làm đƣợc toán dạng j) Hỏi thầy xếp lịch thi đấu cho học sinh nhƣ để theo dự đoán, đoàn Việt Nam thu đƣợc số điểm nhiều Dữ liệu: Nhập từ thiết bị nhập chuẩn (input) 1„h Dòng 1: Chứa hai số n, k (1 „T n „T 100; „T k „T 1000) 2„h Dòng 2: Chứa n2+n số, số thứ p rp 3„h Các dòng tiếp, dòng chứa ba số nguyên dƣơng i,j,p cho biết điều dự đoán thầy: học sinh thứ i làm đƣợc toán dạng j đạt đƣợc số điểm p(=c[i, j]) (1„Tp„T100) Kết quả: Ghi thiết bị xuất chuẩn (output) 1„h Dòng 1: Ghi điểm đồng đội mà theo dự đoán đoàn Việt Nam đạt 2„h Tiếp theo n2 + n dòng, dòng thứ i ghi số hiệu học sinh Việt Nam đƣợc giao làm thứ i Chú thích : Chương trình chạy = FreePascal ! Time limit không 10 giây ! Không giới hạn nhớ ! Thích dùng dùng ! Ví dụ: input output 1 4 2 3 2 2 4 3 1 65 2 4 I hope and expect that you will have much success in IOI 2002 146 CÂY KHUNG NHỎ NHẤT Cho đơn đồ thị vô hƣớng liên thông G = (V, E) gồm n đỉnh m cạnh, đỉnh đƣợc đánh số từ tới n cạnh đƣợc đánh số từ tới m Hãy tìm khung nhỏ đồ thị G Dữ liệu: Vào từ file văn MST.INP 1„h Dòng 1: Chứa hai số n, m (1 „T n „T 10000; „T m „T 15000) 2„h m dòng tiếp theo, dòng thứ i có dạng ba số nguyên u, v, c Trong (u, v) số hai đỉnh đầu mút cạnh thứ i c trọng số cạnh (1 „T u, v „T n; „T c „T 10000) Kết quả: Ghi file văn MST.OUT 1„h Dòng 1: Ghi trọng số khung nhỏ 2„h n - dòng tiếp theo, dòng ghi số cạnh đƣợc chọn vào khung nhỏ Ví dụ: MST INP 1 2 5 5 MST.O UT Giới hạn thời gian: giây 147 MẠNG MÁY TÍNH Bản đồ mặt phòng máy tính hình chữ nhật nằm hệ trục toạ độ Decattes vuông góc có đỉnh A(0, 0), B(m, 0), C(m, n) D(0, n) Tại điểm toạ độ nguyên nằm hình chữ nhật ABCD có máy tính (nhƣ có tất (m + 1) (n+1) máy tính) Một dây cáp mạng đoạn cáp nối độ dài đơn vị, nhƣ dây cáp mạng nối đƣợc hai máy tính liền hàng cột Ban đầu có sẵn số dây cáp mạng nối số cặp máy tính Hai máy u v truyền tin cho chúng có đƣờng truyền tin (u = x1, x2, x3, , xk = v) (Giữa máy xi máy xi+1 có dây cáp mạng nối chúng) Hãy nối thêm số dây cáp mạng cho hai máy phòng máy truyền tin cho Dữ liệu: Vào từ file văn NET.INP 1„h Dòng 1: Chứa hai số m, n (1 „T m, n „T 100); 2„h Các dòng tiếp theo, dòng chứa thông tin đoạn cáp có sẵn: gồm số x1, y1, x2, y2 thể hiệu cho cáp mạng nối hai máy toạ độ (x1, y1) (x2, y2) (|x1 - x2| + |y1-y2| = 1) Kết quả: Ghi file văn NET.OUT 1„h Dòng 1: Ghi số cáp mạng cần nối thêm (c) 2„h c dòng tiếp theo, dòng ghi số u1, v1, u2, v2 cho biết cần thêm cáp nối hai máy toạ độ (u1, v1) (u2, v2) Các số dòng Input/Output file cách dấu cách Ví dụ: NET.INP 1 1 2 1 0 NET.OUT 2 1 2 1 3 012123xy Giới hạn thời gian: giây 148 DẴY ĐƠN ĐIỆU TĂNG DÀI NHẤT Cho dãy số nguyên dƣơng a = (a1, a2, , an) (1 „T n „T 10000; „T „T 10000) Hãy tìm dãy số dài i1, i2, , ik thoả mãn: 1„h „T i1 < i2 < < ik „T n 2„h ai1 < ai2 < < aik Dữ liệu: Vào từ file văn INCSEQ.INP 1„h Dòng 1: Chứa số n 2„h Dòng 2: Chứa n số a1, a2, , an Kết quả: Ghi file văn INCSEQ.OUT 1„h Dòng 1: Ghi số k 2„h Dòng 2: Ghi k số i1, i2, , ik Các số dòng Input/Output file cách dấu cách Ví dụ: INCSEQ.I NP 8 9 INCSEQ.OU T 6 Giới hạn thời gian: giây 149 LUỒNG CỰC ĐẠI TRÊN MẠNG Cho mạng G = (V, E) đồ thị có hƣớng với n điểm m cung, điểm phát n điểm thu Từ có cung từ n có cung vào Mỗi cung (u, v) mạng đƣợc gán số nguyên dƣơng c(u, v) khả thông qua cung Một luồng cực đại mạng cách gán cho cung (u, v) số nguyên f(u, v) thoả mãn: i) f(u, v) „T c(u, v) (ƒp(u, v)„¡E) ii) (ƒpv„¡V) .E)w,v(E)v,u()w,v(f)v,u(f iii)Giá trị luồng = lớn Hãy tìm luồng cực đại mạng G Dữ liệu: Vào từ file văn MAXFLOW.INP .E)n,v(E)u,1()n,v(f)u,1(f 1„h Dòng 1: Chứa số đỉnh n số cung m đồ thị G (2 „T n „T 100) 2„h m dòng tiếp theo, dòng chứa ba số u, v, c(u, v) thể cho cung (u, v) khả thông qua cung c(u, v) Kết quả: Ghi file văn MAXFLOW.OUT 1„h Dòng 1: Ghi giá trị luồng tìm đƣợc 2„h Các dòng tiếp theo, dòng chứa ba số x, y, f(x, y) thể (x, y) cung luồng gán cho cung (x, y) f(x, y) (Những cung luồng (f(x, y) = 0) không cần phải ghi vào Output file) Các số dòng Input / Output file ghi cách dấu cách Ví dụ: 12345615566633 MAXFLOW.INP 5 3 3 6 6 MAXFLOW.OUT 4 3 6 150 BỘ GHÉP CỰC ĐẠI Cho đồ thị hai phía G = (X„yY, E); Các đỉnh X ký hiệu x1, x2, , xm, đỉnh Y ký hiệu y1, y2, , yn Một ghép G tập cạnh „¡E đôi đỉnh chung Yêu cầu: Hãy tìm ghép cực đại (có nhiều cạnh nhất) G Dữ liệu: Vào từ file văn MATCH.INP 1„h Dòng 1: Chứa hai số m, n (1 „T m, n „T 300) 2„h Các dòng tiếp, dòng chứa hai số nguyên dƣơng i, j cho biết thông tin cạnh (xi, yj)„¡E Kết quả: Ghi file văn MATCH.OUT 1„h Dòng 1: Ghi số cạnh ghép cực đại tìm đƣợc (K) 2„h K dòng tiếp theo, dòng ghi thông tin cạnh đƣợc chọn vào ghép cực đại: Gồm số u, v thể cho cạnh nối (xu, yv) Các số dòng Input / Output file cách dấu cách Ví dụ: 123412345XY MATCH.INP 1 2 2 3 4 MATCH.OUT 1 3 151 BỘ GHÉP ĐẦY ĐỦ TRỌNG SỐ CỰC TIỂU Cho đồ thị hai phía G = (X„yY, E); Các đỉnh X ký hiệu x1, x2, , xn, đỉnh Y ký hiệu y1, y2, , yn Mỗi cạnh G đƣợc gán trọng số không âm Một ghép đầy đủ G tập n cạnh „¡E đôi đỉnh chung Trọng số ghép tổng trọng số cạnh nằm ghép Yêu cầu: Hãy tìm ghép đầy đủ có trọng số cực tiểu G Dữ liệu: Vào từ file văn MATCH.INP 1„h Dòng 1: Chứa số n (1 „T n „T 200) 2„h Các dòng tiếp theo, dòng chứa số nguyên i, j, c cho biết có cạnh (xi, yj) trọng số cạnh c (0 „T c „T 200) Kết quả: Ghi file văn MATCH.OUT 1„h Dòng 1: Ghi trọng số ghép tìm đƣợc 2„h n dòng tiếp, dòng ghi hai số (u, v) tƣợng trƣng cho cạnh (xu, yv) đƣợc chọn vào ghép Các số dòng Input / Output file cách dấu cách Ràng buộc: Luôn tồn ghép đầy đủ G Ví dụ: MATCH.IN P 1 2 3 4 MATCH.OUT 1 4 152 TUYỂN NHÂN CÔNG Có n công việc cần thực r loại thợ Thợ loại i không làm đƣợc việc j làm đƣợc với chi phí cij Một phép phân công cách chọn n thợ giao cho thợ làm việc cho thực tất n công việc Giả sử có sẵn m thợ tìm cách tuyển thêm số thợ để thực phép phân công Nếu có nhiều cách tuyển thoả mãn yêu cầu cách tuyển có tổng chi phí thực công việc (trên phép phân công tối ưu) cực tiểu Dữ liệu: Vào từ file văn ASSIGN.INP 1„h Dòng 1: Chứa ba số m, n, r (1 „T m, n, r „T 300) 2„h Dòng 2: Chứa m số, số thứ k loại thợ thứ k m thợ có 3„h Các dòng tiếp theo, dòng ghi ba số i, j, cịj cho biết loại thợ i làm đƣợc việc j với chi phí cij (0 „T cij „T 10000) Các số dòng Input file cách dấu cách Kết quả: Ghi file văn ASSIGN.OUT 1„h Dòng 1: Ghi số thợ cần thêm chi phí phép phân công tối ƣu 2„h n dòng tiếp theo, dòng thứ i ghi loại thợ đƣợc giao thực việc i Ràng buộc: Mỗi việc có loại thợ thực Ví dụ: ASSIGN.IN P 10 5 5 5 5 1 10 10 10 10 10 3 10 2 6 ASSIGN.OUT ASSIGN.INP ASSIGN.OUT 25 1 10 30 1 25 2 40 31 153 DÀN ĐÈN Cho bảng vuông kích thƣớc mxn đƣợc chia thành lƣới ô vuông đơn vị, ô bảng có ký hiệu: 1„h ".": Ô trống 2„h "+": Ô có chứa đèn chƣa bật sáng 3„h "*": Ô có chứa đèn bật sáng Hai đèn bật sáng không nằm hàng cột Yêu cầu: Hãy bật sáng thêm số nhiều đèn cho: số đèn sáng hàng cột bảng tối đa Dữ liệu: Vào từ file văn GRID.INP 1„h Dòng 1: Chứa hai số m, n (1 „T m , n „T 200) cách dấu cách 2„h m dòng tiếp theo, dòng thứ i chứa n ký tự liên tiếp, ký tự thứ j ký hiệu ô (i, j) bảng Kết quả: Ghi file văn GRID.OUT 1„h Dòng 1: Ghi số đèn bật thêm 2„h m dòng tiếp theo, dòng thứ i ghi n ký tự liên tiếp, ký tự thứ j ký hiệu ô (i, j) bảng sau bật sáng thêm đèn Ví dụ: GRID INP GRID.O UT + * ++.+ .++ ++ + * *+ + .*+ +* 6 y x (Đỏ) (xanh) (Đỏ) (Đỏ) (xanh) (xanh) (xanh) 12 14 10 11 15 13 E W N S EEEENNNWWWSSSSSSSEEEEENNNNNWW N S E W Start Finish 2 2 10 w W E N S [...]... 4 0 -1 6 7 1 3 3 8 -2 8 2 5 3 2 1 -1 6 2 1 6 1 7 -2 6 2 1 3 7 MAX.OUT 41 1 2 3 2 3 4 5 027 KẾ HOẠCH THUÊ NHÂN CÔNG Giám đốc điều hành của một Công ty tin học cần xác định số lƣợng nhân công cần sử dụng trong mỗi tháng để thực hiện một dự án phát triển tin học Ông giám đốc nắm đƣợc số lƣợng nhân công tối thiểu cần cho mỗi tháng Mỗi lần thuê hoặc sa thải một nhân công luôn mất thêm một khoản chi phí Mỗi... trên cạnh nam của hợp các hình 1,2,3 và cạnh kia gấp K lần Hình có số hiệu 5 xây dựng trên cạnh đông của hợp các hình 1,2,3,4 và cạnh kia gấp K lần Tƣơng tự quy luật đó với các hình mang thứ tự 6,7 Bài toán đặt ra là cho trƣớc 3 số thực K,X,Y, hãy cho biết số hiệu nhỏ nhất của hình chữ nhật chứa điểm có toạ độ (X,Y) Dữ liệu: Vào từ bởi file văn bản REC.INP gồm 1 số dòng Mỗi dòng gồm 3 số K,X,Y với... tên các hãng sở hữu đƣờng bay đó AIRLINES.INP AIRLINES 15 16 3 2 1 5 1 2 5 10 1 3 6 7 15 3 11 12 1 1 2 3 1 6 11 12 13 1 1 3 4 1 7 8 13 14 1 3 1 2 3 9 1 7 13 2 14 15 1 3 2 8 4 9 9 023 MÔ PHỎNG CÁC PHÉP TOÁN Cho hai số nguyên dƣơng a và b (1 „T b „T a < 101000), hãy tính a + b, a - b, a * b, a div b, a mod b Dữ liệu: Vào từ file văn bản OPT.INP 1„h Dòng 1: Chứa số a 2„h Dòng 2: Chứa số b Kết quả: Ghi ... toàn, ngƣời ta muốn chuyển thông điệp theo hai đƣờng truyền tin khác (tức kênh mạng đƣợc sử dụng hai đƣờng truyền tin) Chi phí đƣờng truyền tin đƣợc hiểu tổng chi phí kênh Chi phí truyền thông điệp... thông điệp theo cách truyền tin tìm đƣợc 2„h Dòng thứ hai ghi đƣờng truyền tin thứ dƣới dạng dãy có thứ tự máy, máy S kết thúc máy D 3„h Dòng thứ ba ghi đƣờng truyền tin thứ hai dƣới dạng dãy có... thời gian tính phép * Q, người ta định nghĩa thời gian tính toán biểu thức đủ sau: 1„h Nếu biểu thức đủ gồm biến (a z) thời gian tính toán 2„h Nếu X Y biểu thức đủ; thời gian tính X TX thời gian