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

pdf165 trang | Chuyên mục: Pascal | Chia sẻ: dkS00TYs | Lượt xem: 2813 | Lượt tải: 1download
Tóm tắt nội dung 150 bài toán tin - Đại học sư phạm Hà Nội, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ỏ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:

  • pdf150 bài toán tin - Đại học sư phạm Hà Nội.pdf