150 bài toán tin - Đại học sư phạm Hà Nội
001. TÍNH TOÁN SONG SONG 9
002. BẢNG SỐ 10
003. CARGO 11
004. DÃY CON 12
005. XÂU FIBINACCI 13
006. VÒNG SỐNGUYÊN TỐ 14
007. ĐÔI BẠN 15
008. CỬA SỔVĂN BẢN 16
009. VÒNG TRÒN CON 17
010. BỐTRÍ PHÒNG HỌP 18
011. MUA VÉ TÀU HOẢ 19
012. XIN CHỮKÝ 21
013. LẮC NẠM KIM CƯƠNG 22
014. RẢI SỎI 23
015. ĐIỆP VIÊN 24
016. KHOẢNG CÁCH GIỮA HAI XÂU 25
017. XẾP LẠI BẢNG SỐ 26
018. THĂM KHU TRIỂN LÃM 27
019. DÒ MÌN 29
020. XẾP LẠI DÃY SỐ 30
3
021. CO DÃY BÁT PHÂN 31
022. TUYẾN BAY 32
023. MÔ PHỎNG CÁC PHÉP TOÁN 33
024. DÃY CON CỦA DÃY NHỊPHÂN 34
025. TỔNG CÁC CHỮSỐ 35
026. ĐƯỜNG ĐI NHIỀU ĐIỂM NHẤT 36
027. KẾHOẠCH THUÊ NHÂN CÔNG 37
028. DÃY CÁC HÌNH CHỮNHẬT 38
029. SƠN CỘT 39
030. CẮT VẢI 40
031. CHIA KẸO 41
032. BẢNG QUAN HỆ 42
033. ĐONG NƯỚC 43
034. TRẢTIỀN 44
035. HOÁN VỊCHỮCÁI 45
036. DỰTIỆC BÀN TRÒN 46
037. TRÁO BÀI 47
038. ĐỐI XỨNG HOÁ 48
039. MẠNG MÁY TÍNH 49
040. LẬT ĐÔ MI NÔ 50
041. SỐNHỊPHÂN LỚN NHẤT 51
042. SƠN CÁC HÌNH CHỮNHẬT 52
043. PHÂN HOẠCH TAM GIÁC 53
4
044. CÁC THÀNH PHẦN LIÊN THÔNG MẠNH 54
045. MÃ GRAY 55
046. DỰÁN XÂY CẦU 56
047. BẢO TỒN ĐỘNG VẬT HOANG DÃ 57
048. PHÁ TƯỜNG 58
049. TRUYỀN TIN TRÊN MẠNG 59
050. HÌNH VUÔNG CỰC ĐẠI 60
051. ĐOÀN XE QUA CẦU 61
052. SỐLƯỢNG 62
053. THÁM HIỂM LÒNG ĐẤT 63
054. THỨTỰTỪ ĐIỂN 64
055. DÃY LỆCH 65
056. RÚT GỌN DÃY SỐ 66
057. BUÔN TIỀN 67
058. DÃY NGOẶC 68
059. THẰNG BỜM VÀ PHÚ ÔNG 69
060. SỐTHẬP PHÂN 70
061. DANH SÁCH VÒNG 71
062. TÍNH DIỆN TÍCH 72
063. THANG MÁY 73
064. TRỌNG SỐXÂU 74
065. PHỐMAY MẮN 75
066. TÍN HIỆU GIAO THÔNG 76
5
067. PHÂN NHÓM 77
068. TUA DU LỊCH RẺNHẤT 78
069. DU LỊCH NHIỀU TUA NHẤT 79
070. PHÂN CÔNG 80
071. NHẮN TIN 81
072. CÁC SỐ ĐIỆN THOẠI 82
073. GIÁ TRỊLỚN NHẤT 83
074. NÚT GIAO THÔNG TRỌNG ĐIỂM 84
075. TẬP KẾT 85
076. MỜI KHÁCH DỰTIỆC 86
077. KHÔI PHỤC NGOẶC 87
078. DÂY XÍCH 88
079. PHÂN CÔNG 89
080. DÂY CUNG 90
081. MÊ CUNG 91
082. DU LỊCH KIỂU ÚC 92
083. SỬA ĐƯỜNG 93
084. ĐI THI 94
085. MÈO KIỂU ÚC 95
086. THÀNH PHỐTRÊN SAO HOẢ 96
087. RÔ BỐT XÂY NHÀ 97
088. TƯDUY KIỂU ÚC 98
089. 8-3, TẶNG HOA KIỂU ÚC 99
6
090. MÃ HOÁ BURROWS WHEELER 100
091. BAO LỒI 101
092. GIAI THỪA 102
093. PHỦSÓNG 103
094. DÃY NGHỊCH THẾ 104
095. MUA HÀNG 105
096. XÂU CON CHUNG DÀI NHẤT 106
097. DÃY CON NGẮN NHẤT 107
098. BIẾN ĐỔI DÃY SỐ 108
099. GIÁ TRỊNHỎNHẤT 109
100. NỐI DÂY 110
101. GHI ĐĨA 111
102. ĐƯỜNG ĐI THOÁT MÊ CUNG 112
103. CHU TRÌNH CƠBẢN 113
104. CỘT CÂY SỐ 114
105. LỊCH SỬA CHỮA Ô TÔ 115
106. KHỚP VÀ CẦU 116
107. HÀNG ĐỢI VỚI ĐỘ ƯU TIÊN 117
108. HỘI CHỢ 118
109. SERIE A 119
110. SỐHIỆU VÀ GIÁ TRỊ 120
111. PHÉP CO 121
112. CHỮA NGOẶC 122
7
113. MÃ HOÁ BURROWS WHEELER 123
114. MẠNG RÚT GỌN 124
115. DÃY NGOẶC 125
116. LẮP RÁP MÁY TÍNH 126
117. ĐƯỜNG MỘT CHIỀU 127
118. PHỦ 128
119. THÁP GẠCH 129
120. THU THUẾ 130
121. PHÂN CÔNG 131
122. XÂU CON 132
123. LĂN SÚC SẮC 133
124. VỆSĨ 134
125. GIAO LƯU 135
126. GIAO LƯU 136
127. ĐẠI DIỆN 137
128. HỘI CHỢ 138
129. LỊCH HỌC 139
130. MÃ LIÊN HOÀN 140
131. TUYỂN NHÂN CÔNG 141
132. ĐƯỜNG TRÒN 142
133. ĐOẠN 0 143
134. HỌC BỔNG 144
135. ĐOẠN DƯƠNG 145
8
136. TÍN HIỆU GIAO THÔNG 146
137. PHỦ 147
138. DI CHUYỂN RÔ-BỐT 148
139. TRẠM NGHỈ 149
140. CHIA CÂN BẰNG 151
141. LĂN XÚC XẮC 152
142. CHUYỂN HÀNG 153
143. GHÉT NHAU NÉM ĐÁ. 154
144. NỐI DÂY 155
145. MY LAST INVENTION 156
146. CÂY KHUNG NHỎNHẤT 158
147. MẠNG MÁY TÍNH 159
148. DẴY ĐƠN ĐIỆU TĂNG DÀI NHẤT 160
149. LUỒNG CỰC ĐẠI TRÊN MẠNG 161
150. BỘGHÉP CỰC ĐẠI 162
151. BỘGHÉP ĐẦY ĐỦTRỌNG SỐCỰC TIỂU 163
152. TUYỂN NHÂN CÔNG 164
153. DÀN ĐÈN 165
ỏi các thầy sẽ sắp xếp lịch thi đấu cho các học sinh như thế nào để theo dự đoán, đoàn Việt Nam sẽ thu được số điểm nhiều nhất có thể. Dữ liệu: Nhập từ thiết bị nhập chuNn (input) • Dòng 1: Chứa hai số n, k (1 ≤ n ≤ 100; 1 ≤ k ≤ 1000) • Dòng 2: Chứa n2+n số, số thứ p là rp. • Các dòng tiếp, mỗi dòng chứa ba số nguyên dương i,j,p cho biết một điều dự đoán của các thầy: học sinh thứ i có thể làm được bài toán dạng j và đạt được số điểm là p(=c[i, j]). (1≤p≤100). Kết quả: Ghi ra thiết bị xuất chuNn (output) • Dòng 1: Ghi điểm đồng đội mà theo dự đoán đoàn Việt Nam có thể đạt • Tiếp theo là n2 + n dòng, dòng thứ i ghi số hiệu học sinh Việt Nam được giao làm bài thứ i. Chú thích : Chương trình chạy = FreePascal ! Time limit không quá 10 giây ! Không giới hạn bộ nhớ ! Thích dùng bao nhiêu thì dùng ! Ví dụ: input output 3 4 1 2 4 4 3 3 1 4 2 3 2 2 1 1 2 1 2 3 1 4 6 2 3 4 2 1 3 2 4 7 3 2 1 3 1 4 4 1 2 4 3 9 4 2 8 65 3 4 2 1 2 4 3 2 1 4 1 3 157 I hope and expect that you will have much success in IOI 2002 158 146. CÂY KHUNG NHỎ NHẤT Cho đơn đồ thị vô hướng liên thông G = (V, E) gồm n đỉnh và m cạnh, các đỉnh được đánh số từ 1 tới n và các cạnh được đánh số từ 1 tới m. Hãy tìm cây khung nhỏ nhất của đồ thị G. Dữ liệu: Vào từ file văn bản MST.INP • Dòng 1: Chứa hai số n, m (1 ≤ n ≤ 10000; 1 ≤ m ≤ 15000) • m dòng tiếp theo, dòng thứ i có dạng ba số nguyên u, v, c. Trong đó (u, v) là chỉ số hai đỉnh đầu mút của cạnh thứ i và c trọng số của cạnh đó (1 ≤ u, v ≤ n; 0 ≤ c ≤ 10000). Kết quả: Ghi ra file văn bản MST.OUT • Dòng 1: Ghi trọng số cây khung nhỏ nhất • n - 1 dòng tiếp theo, mỗi dòng ghi chỉ số một cạnh được chọn vào cây khung nhỏ nhất Ví dụ: MST.INP MST.OUT 6 9 1 2 1 1 3 1 2 4 1 2 3 2 2 5 1 3 5 1 3 6 1 4 5 2 5 6 2 5 3 7 5 2 1 Giới hạn thời gian: 1 giây 159 147. MẠNG MÁY TÍNH Bản đồ mặt bằng của phòng máy tính là một hình chữ nhật nằm trong hệ trục toạ độ Decattes vuông góc có các đỉnh là A(0, 0), B(m, 0), C(m, n) và D(0, n). Tại các điểm toạ độ nguyên nằm trong hình chữ nhật ABCD có một máy tính (như vậy có tất cả (m + 1).(n+1) máy tính) . Một dây cáp mạng là một đoạn cáp nối độ dài 1 đơn vị, như vậy mỗi dây cáp mạng chỉ có thể nối được hai máy tính liền nhau trên cùng hàng hoặc cùng cột. Ban đầu đã có sẵn một số dây cáp mạng nối giữa một số cặp máy tính Hai máy u và v có thể truyền tin cho nhau nếu giữa chúng có đường truyền tin (u = x1, x2, x3, ..., xk = v) (Giữa máy xi và máy xi+1 có dây cáp mạng nối chúng) Hãy nối thêm một số ít nhất các dây cáp mạng sao cho hai máy bất kỳ trong phòng máy có thể truyền tin được cho nhau. Dữ liệu: Vào từ file văn bản NET.INP • Dòng 1: Chứa hai số m, n (1 ≤ m, n ≤ 100); • Các dòng tiếp theo, mỗi dòng chứa thông tin về một đoạn cáp đã có sẵn: gồm 4 số x1, y1, x2, y2 thể hiệu cho cáp mạng nối hai máy ở toạ độ (x1, y1) và (x2, y2). (|x1 - x2| + |y1-y2| = 1). Kết quả: Ghi ra file văn bản NET.OUT • Dòng 1: Ghi số cáp mạng cần nối thêm (c) • c dòng tiếp theo, mỗi dòng ghi 4 số u1, v1, u2, v2 cho biết cần thêm cáp nối giữa hai máy ở toạ độ (u1, v1) và (u2, v2) Các số trên một dòng của Input/Output file cách nhau ít nhất một dấu cách. Ví dụ: NET.INP NET.OUT 2 3 0 0 0 1 1 0 2 0 1 0 1 1 2 0 2 1 0 1 1 1 1 1 2 1 1 2 2 2 0 3 1 3 4 0 2 1 2 1 2 1 3 1 1 1 2 1 3 2 3 0 1 2 1 2 3 x y Giới hạn thời gian: 1 giây 160 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 ≤ n ≤ 10000; 1 ≤ ai ≤ 10000) Hãy tìm dãy chỉ số dài nhất i1, i2, ..., ik thoả mãn: • 1 ≤ i1 < i2 < ... < ik ≤ n • ai1 < ai2 < ... < aik Dữ liệu: Vào từ file văn bản INCSEQ.INP • Dòng 1: Chứa số n • Dòng 2: Chứa n số a1, a2, ..., an Kết quả: Ghi ra file văn bản INCSEQ.OUT • Dòng 1: Ghi số k • Dòng 2: Ghi k số i1, i2, ..., ik Các số trên một dòng của Input/Output file cách nhau ít nhất một dấu cách Ví dụ: INCSEQ.INP INCSEQ.OUT 8 1 2 8 9 5 6 7 9 6 1 2 5 6 7 8 Giới hạn thời gian: 1 giây 161 149. LUỒNG CỰC ĐẠI TRÊN MẠNG Cho một mạng G = (V, E) là đồ thị có hướng với n điểm và m cung, 1 là điểm phát và n là điểm thu. Từ 1 chỉ có cung đi ra và từ n chỉ có cung đi vào. Mỗi cung (u, v) của mạng được gán một số nguyên dương c(u, v) là khả năng thông qua của cung đó. Một luồng cực đại trên mạng là một cách gán cho mỗi cung (u, v) một số nguyên f(u, v) thoả mãn: i) f(u, v) ≤ c(u, v) (∀(u, v)∈E) ii) ∑∑ ∈∈ = E)w,v(E)v,u( )w,v(f)v,u(f (∀v∈V) iii)Giá trị luồng = ∑∑ ∈∈ = E)n,v(E)u,1( )n,v(f)u,1(f là lớn nhất có thể. Hãy tìm luồng cực đại trên mạng G Dữ liệu: Vào từ file văn bản MAXFLOW.INP • Dòng 1: Chứa số đỉnh n và số cung m của đồ thị G (2 ≤ n ≤ 100) • m dòng tiếp theo, mỗi dòng chứa ba số u, v, c(u, v) thể hiện cho một cung (u, v) và khả năng thông qua của cung đó là c(u, v) Kết quả: Ghi ra file văn bản MAXFLOW.OUT • Dòng 1: Ghi giá trị luồng tìm được • Các dòng tiếp theo, mỗi dòng chứa ba số x, y, f(x, y) thể hiện (x, y) là một cung và luồng gán cho cung (x, y) là f(x, y) (Những cung nào không có luồng (f(x, y) = 0) không cần phải ghi vào Output file). Các số trên một dòng của Input / Output file ghi cách nhau ít nhất một dấu cách. Ví dụ: 1 2 3 4 5 6 1 5 5 6 6 6 3 3 MAXFLOW.INP 6 8 1 2 5 1 3 5 2 4 6 2 5 3 3 4 3 3 5 1 4 6 6 5 6 6 MAXFLOW.OUT 9 1 2 5 1 3 4 2 4 3 2 5 2 3 4 3 3 5 1 4 6 6 5 6 3 162 150. BỘ GHÉP CỰC ĐẠI Cho đồ thị hai phía G = (X∪Y, E); Các đỉnh của X ký hiệu là x1, x2, ..., xm, các đỉnh của Y ký hiệu là y1, y2, ..., yn. Một bộ ghép trên G là một tập các cạnh ∈E đôi một không có đỉnh chung. Yêu cầu: Hãy tìm bộ ghép cực đại (có nhiều cạnh nhất) trên G. Dữ liệu: Vào từ file văn bản MATCH.INP • Dòng 1: Chứa hai số m, n (1 ≤ m, n ≤ 300) • Các dòng tiếp, mỗi dòng chứa hai số nguyên dương i, j cho biết thông tin về một cạnh (xi, yj)∈E. Kết quả: Ghi ra file văn bản MATCH.OUT • Dòng 1: Ghi số cạnh trong bộ ghép cực đại tìm được (K). • K dòng tiếp theo, mỗi dòng ghi thông tin về một cạnh được chọn vào bộ ghép cực đại: Gồm 2 số u, v thể hiện cho cạnh nối (xu, yv). Các số trên một dòng của Input / Output file cách nhau ít nhất một dấu cách. Ví dụ: 1 2 3 4 1 2 3 4 5 X Y MATCH.INP 4 5 1 1 1 4 2 1 2 2 2 4 3 2 3 3 4 2 4 3 MATCH.OUT 4 1 1 2 4 3 3 4 2 163 151. BỘ GHÉP ĐẦY ĐỦ TRỌNG SỐ CỰC TIỂU Cho đồ thị hai phía G = (X∪Y, E); Các đỉnh của X ký hiệu là x1, x2, ..., xn, các đỉnh của Y ký hiệu là y1, y2, ..., yn. Mỗi cạnh của G được gán một trọng số không âm. Một bộ ghép đầy đủ trên G là một tập n cạnh ∈E đôi một không có đỉnh chung. Trọng số của bộ ghép là tổng trọng số các cạnh nằm trong bộ ghép. Yêu cầu: Hãy tìm bộ ghép đầy đủ có trọng số cực tiểu của G Dữ liệu: Vào từ file văn bản MATCH.INP • Dòng 1: Chứa số n (1 ≤ n ≤ 200) • Các dòng tiếp theo, mỗi dòng chứa 3 số nguyên i, j, c cho biết có một cạnh (xi, yj) và trọng số cạnh đó là c (0 ≤ c ≤ 200). Kết quả: Ghi ra file văn bản MATCH.OUT • Dòng 1: Ghi trọng số bộ ghép tìm được • n dòng tiếp, mỗi dòng ghi hai số (u, v) tượng trưng cho một cạnh (xu, yv) được chọn vào bộ ghép. Các số trên một dòng của Input / Output file cách nhau ít nhất một dấu cách. Ràng buộc: Luôn tồn tại ít nhất một bộ ghép đầy đủ trên G. Ví dụ: MATCH.INP 4 1 1 0 1 2 0 2 1 0 2 4 2 3 2 1 3 3 0 4 3 0 4 4 9 MATCH.OUT 3 1 1 2 4 3 2 4 3 164 152. 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. Một phép phân công là một cách chọn ra n thợ và giao cho mỗi thợ làm đúng một việc sao cho có thể thực hiện tất cả n công việc. Giả sử đã có sẵn m thợ hãy tìm cách tuyển thêm một số ít nhất thợ để có thể thực hiện phép phân công. 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 ≤ 300) • 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 ư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 165 153. DÀN ĐÈN Cho một bảng vuông kích thước mxn được chia thành lưới ô vuông đơn vị, tại mỗi ô của bảng có một trong các ký hiệu: • ".": Ô trống • "+": Ô có chứa một đèn chưa bật sáng • "*": Ô có chứa một đèn đã bật sáng Hai đèn đã bật sáng bất kỳ không nằm cùng hàng hoặc cùng cột. Yêu cầu: Hãy bật sáng thêm một số nhiều nhất các đèn sao cho: số đèn sáng trên mỗi hàng cũng như trên mỗi cột của bảng tối đa là 1. Dữ liệu: Vào từ file văn bản GRID.INP • Dòng 1: Chứa hai số m, n (1 ≤ m , n ≤ 200) cách nhau ít nhất một dấu cách • m dòng tiếp theo, dòng thứ i chứa n ký tự liên tiếp, ký tự thứ j là ký hiệu ô (i, j) của bảng Kết quả: Ghi ra file văn bản GRID.OUT • Dòng 1: Ghi số đèn có thể bật thêm • m dòng tiếp theo, dòng thứ i ghi n ký tự liên tiếp, ký tự thứ j là ký hiệu ô (i, j) của bảng sau khi đã bật sáng thêm các đèn Ví dụ: GRID.INP GRID.OUT 4 5 +..*. ++.+. .++.. .++.. 3 +..*. *+.+. .*+.. .+*..
File đính kèm:
- 150 bài toán tin - Đại học sư phạm Hà Nội.pdf