Để đáp ứng yêu cầu của các bạn học sinh và các thầy cô giáo, tôi sưu tầm, biên soạn đề thi chọn học sinh giỏi cấp tỉnh và đề thi chọn đội tuyển dự thi học sinh giỏi quốc gia tỉnh Phú Thọ môn tin học năm 20072013, tập tài liệu này gồm 3 phần:Phần 1. Đề bài.Phần 2. Phương pháp giải.Phần 3. Chương trình.Trong phần 1, tôi giới thiệu đề thi từ năm học 20072008 đến năm học 20132014 mỗi năm học gồm 2 đề: đề chọn học sinh giỏi cấp tỉnh và đề thi chọn đội tuyển dự thi học sinh giỏi quốc gia.Trong phần 2, tôi giới thiệu phương pháp giải các bài toán, mỗi bài toán đều được phân tích để đưa ra thuật toán hay giải thuật sao cho tự nhiên, dễ hiểu, phù hợp với nhận thức của học sinh THPT tuy nhiên nhiều bài các em phải có kiến thức tốt về thuật toán cơ bản hay kiến thức về toán học rời rạc.Trong phần 3, tôi giới thiệu cài đặt các thuật toán, phương pháp để các em tham khảo.Cuốn tài liệu sẽ là tài liệu bổ ích cho các em học sinh yêu thích môn Toán Tin học, những học sinh ôn thi đội tuyển, học sinh giỏi lớp 12. Là tài liệu hữu ích cho các thầy cô giáo trong công tác bồi dưỡng học sinh giỏi môn Tin học THPT.Tôi rất mong nhận được sự đóng góp từ phía bạn đọc để tập tài liệu ngày càng hoàn thiện hơn.
Trang 1NGUYỄN QUỐC HƯƠNG
ĐỀ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
VÀ ĐỀ THI CHỌN ĐỘI TUYỂN DỰ THI HỌC SINH GIỎI QUỐC GIA LỚP 12 THPT
TỈNH PHÚ THỌ
MÔN TIN HỌC
2007-2013
PHÚ THỌ - 2014
Trang 2MỤC LỤC
Trang 3LỜI NÓI ĐẦU
Để đáp ứng yêu cầu của các bạn học sinh và các thầy cô giáo, tôi sưu tầm, biên soạn đề thi chọn học sinh giỏi cấp tỉnh và đề thi chọn đội tuyển dự thi học sinh giỏi quốc gia tỉnh Phú Thọ môn tin học năm 2007-2013, tập tài liệu này gồm 3 phần:
Trong phần 2, tôi giới thiệu phương pháp giải các bài toán, mỗi bài toán đều được phân tích để đưa ra thuật toán hay giải thuật sao cho tự nhiên, dễ hiểu, phù hợp với nhận thức của học sinh THPT tuy nhiên nhiều bài các em phải có kiến thức tốt về thuật toán cơ bản hay kiến thức về toán học rời rạc.
Trong phần 3, tôi giới thiệu cài đặt các thuật toán, phương pháp để các em tham khảo.
Cuốn tài liệu sẽ là tài liệu bổ ích cho các em học sinh yêu thích môn Toán
- Tin học, những học sinh ôn thi đội tuyển, học sinh giỏi lớp 12 Là tài liệu hữu ích cho các thầy cô giáo trong công tác bồi dưỡng học sinh giỏi môn Tin học THPT.
Tôi rất mong nhận được sự đóng góp từ phía bạn đọc để tập tài liệu ngày càng hoàn thiện hơn.
Mọi đóng góp xin gửi tới địa chỉ email quochuongvn@gmail.com, số điện thoại: 0978 401 995./.
Phú Thọ, tháng 9 năm 2014
TÁC GIẢ
Nguyễn Quốc Hương
Trang 4Phần 1 ĐỀ BÀI
1 Năm học 2007-2008
1.1 Chọn học sinh giỏi cấp tỉnh
Câu 1 Tính giá trị của biểu thức:
f(x) =
1
50252
3 2
2
+++
+
−
x x x
x x
Với x nguyên dương và lẻ
1 Với các giá trị còn lại của x.
Dữ liệu vào: cho trong file văn bản BL1.IN Mỗi dòng của file là một giá
Câu 2 Dãy Farey
Dãy Farey của số tự nhiên n, ký hiệu F(n) là dãy sắp tăng các phân số trong đoạn [0,1] tức là các phân số tối giản có dạng t/m với 0 ≤ t ≤ m ≤ n Với phân số đầu tiên của dãy có giá trị 0, ta quy định viết 0/1, với phân số cuối cùng của dãy có giá trị 1 ta quy định viết 1/1 Biết n trong khoảng từ 1 đến 300 Viết dãy Farey của n.
Dữ liệu vào: cho trong file văn bản BL2.IN;
Kết quả: ghi ra file văn bản BL2.OUT có cấu trúc sau:
Trang 5Trong đó k là số lượng các phân số trong dãy tìm được Mỗi dòng chứa một phân số ti mi Hai số trên cùng một dòng cách nhau qua ký tự trắng.
Ví dụ:
1 4 3
3 4
1 1
1.2 Chọn đội tuyển dự thi quốc gia
Bài 1 Tổng số nguyên liên tiếp
Cho số nguyên dương N và N số nguyên dương a1, a2, …, aN
Yêu cầu: Hãy chọn ra k số liên tiếp trong N số đã cho sao cho tổng của chúng
chia hết cho N và k nhỏ nhất.
Dữ liệu: Vào từ file văn bản BAI1.INP.
- Dòng đầu ghi số nguyên dương N
- Các dòng tiếp theo ghi N số nguyên dương a1, a2, …, aN.
Kết quả: Ghi ra file văn bản BAI1.OUT gồm một dòng ghi hai số nguyên
dương k và j trong đó k là số số nguyên được chọn, j là chỉ số của số nguyên dương đầu tiên trong k số được chọn.
Hai số trên cùng một dòng trong file dữ liệu vào và ra cách nhau ít nhất một kí tự trắng.
Giới hạn kích thước: N và các ai ≤ 32767
Ví dụ:
BAI1.INP BAI1.OUT35
Trang 6Một bàn cờ được chia lưới ô vuông Các dòng được đánh số từ 1 đến 200 theo chiều từ trên xuống dưới, các cột được đánh số từ 1 đến 200 theo chiều từ trái sang phải.
Hai người chơi lần lượt điền vào một ô (còn trống) của bàn cờ một ký hiệu riêng của mình (chẳng hạn, một người dùng dấu × , một người dùng dấu ο ) Người nào
đến lượt đi tạo được một chữ thập trong số các ô đánh dấu của mình thì người đó thắng cuộc Chữ thập gồm 5 ô
Yêu cầu: Giả thiết biết một loạt các lượt đi của hai đấu thủ, hãy phát hiện kết
cục của cuộc chơi (có thể chưa phân thắng bại sau lượt đi cuối cùng, cũng có thể
đã phân thắng bại tại lượt đi nào đó không nhất thiết là lượt đi cuối cùng).
Dữ liệu: Vào từ file văn bản BAI2.INP Dòng thứ i ghi lượt đi i (i = 1, 2, ) của
cuộc chơi gồm hai cặp số theo thứ tự là toạ độ dòng, cột của ô chọn của người đi trước và toạ độ dòng, cột của ô chọn của người đi sau Các số trên cùng một dòng ghi cách nhau ít nhất một dấu trắng.
Kết quả: Ghi ra file văn bản BAI2.OUT gồm một dòng như sau:
• Nếu cuộc chơi chưa phân thắng bại thì ghi số -1.
• Nếu cuộc chơi đã có kết cục thì ghi số hiệu người thắng (quy ước 1 là
số hiệu người đi trước, 2 là số hiệu người đi sau), tiếp theo là số thứ tự của lượt đi mà người đó thắng cuộc.
Trang 7Câu 2 Vương quốc Aziama
Vương quốc Aziama có không quá 10.000 dân, mỗi người được cấp một
mã số phân biệt là một số tự nhiên tính liên tục từ 1 đến n Quốc vương luôn luôn mang mã số 1 và được gọi là tù trưởng đẳng cấp 1 Quốc vương quản lý trực tiếp một số tù trưởng đẳng cấp 2, mỗi tù trưởng đẳng cấp 2 lại quản lý trực tiếp một số tù trưởng đẳng cấp 3, Những người không quản lý ai thì được gọi
là thần dân Một người dân i được gọi là dưới quyền người dân j nếu theo quan
hệ quản lý j quản lý i Trong trường hợp này ta cũng nói là j chỉ huy i
Bài toán đặt ra là: Cho biết mã số d của một người Hãy tìm các giá trị sau:
1) m - Số lượng những người dưới quyền của d.
2) s - Số lượng tù trưởng dưới quyền của d.
3) c - Số lượng tù trưởng chỉ huy d.
Dữ liệu vào: file văn bản BL2.IN
Dòng đầu tiên chứa 2 số tự nhiên n và d, trong đó n là dân số của Vương quốc Aziama, d là mã số của người dân được chọn.
Tiếp đến là một số dòng, mỗi dòng chứa 2 số tự nhiên v và t, trong đó v là
mã số của một người dân, t là mã số của người dân quản lý trực tiếp v Kết thúc tệp là dòng chứa hai số không.
Hai số trên cùng một dòng cách nhau qua dấu cách.
Trang 8Dữ liệu ra: file văn bản BL2.OUT gồm một dòng chứa ba giá trị phải tìm m s c
cách nhau qua dấu cách.
Bài 1: Số đoạn con nhiều nhất
Cho một dãy số nguyên không âm a1; a2; ; aN Hãy chia dãy số trên thành các đoạn con liên tiếp sao cho tổng giá trị của tất cả các phần tử của các đoạn con đều bằng nhau và số đoạn con là nhiều nhất.
Dữ liệu vào: cho trong file văn bản có tên DOANCON.IN có dạng:
- Dòng đầu ghi số nguyên dương N là số các phần tử có trong dãy
N 10000 ≤
- Các dòng tiếp theo ghi lần lượt các phần tử thuộc dãy
Kết quả: ghi vào file văn bản có tên DOANCON.OUT có cấu trúc:
- Dòng đầu ghi 2 số p, q là số đoạn con và tổng giá trị của mỗi đoạn con.
- p dòng tiếp theo mỗi dòng ghi hai số b, d là chỉ số của phần tử bắt đầu
và kết thúc một đoạn con trong dãy đã cho.
Hai số trên một dòng của file dữ liệu vào và ra cách nhau một ký tự trắng
Trang 9Bài 2: Giải hệ phương trình
Một hệ phương trình có thể có nghiệm, vô nghiệm hoặc vô số nghiệm Cho một hệ phương trình:
=+
=+
0 e
Yêu cầu đặt ra: Giải hệ phương trình trên.
Dữ liệu vào: cho trong file văn bản có tên PT.IN, mỗi dòng của file là các
hệ số của hệ phương trình trên theo thứ tự a, b, c, d, e
Dữ liệu ra: File văn bản có tên PT.OUT , mỗi dòng của file là kết quả
nghiệm của hệ phương trình đã cho tương ứng trong file PT.IN viết theo thứ tự nghiệm của x sau đó nghiệm của y Nếu hệ phương trình đã cho vô nghiệm thì ghi VO NGHIEM Nếu hệ phương trình đã cho có vô số nghiệm thì ghi VO SO NGHIEM.
Hai số trên một dòng của file dữ liệu vào và ra cách nhau một ký tự trắng.
VO SO NGHIEM
3.2 Chọn đội tuyển dự thi quốc gia
Bài 1 GIẢM GIÁ
Để thu hút khách hàng tới mua sắm các cơ sở doanh nghiệp đã áp dụng nhiều biện pháp độc đáo khác nhau Ở một siêu thị lớn người ta thấy một tấm biển với nội dung hết sức hấp dẫn:
Trang 10Bạn định mua n mặt hàng, mặt hàng thứ i có giá là ci (ci – nguyên,
i
1 c ≤ ≤ 10.000 , i = 1 ÷ n, 1 ≤ n ≤ 1000) Đây là một cơ hội lớn để “tránh bội chi
ngân sách” Ví dụ, bạn định mua 6 mặt hàng vói giá tương ứng là (1, 5, 4, 3, 5, 7) Bình thường bạn phải chi 1+5+4+3+5+7=25 đồng Nhưng với chính sách khuyến mãi của siêu thị, bạn mua các mặt hàng thứ nhất, thứ 3, thứ tư và chỉ phải thanh toán 4+3 = 7 đồng, sau đó mua mặt hàng thứ 2, thứ 5, thứ 6 với chi phí 7+5 = 12 đồng Tổng cộng bạn chỉ phải trả có 19 đồng.
Dĩ nhiên, bạn có thể chỉ mua một hoặc hai mặt hàng và không được hưởng lợi gì từ chính sách khuyến mãi nói trên.
Yêu cầu: Cho n và ci (i =1÷ n) Hãy xác định tổng số tiền nhỏ nhất phải chi để mua được n mặt hàng.
Dữ liệu: Vào từ file văn bản BUY.INP:
- Dòng đầu tiên chứa số nguyên n.
- Dòng thứ 2 chứa n số nguyên c1, c2, , cn Các số ghi cách nhau một dấu cách.
Kết quả: Đưa ra file văn bản BUY.OUT một số nguyên – tổng số tiền
đứng đối mặt với nhau – họ sẽ
bắt tay, sau đó quay lưng lại
với nhau (để có thể bắt tay với
người bên cạnh) Việc bắt tay
và quay lưng diễn ra đồng thời
ở tất cả các cặp đối mặt nhau
Trang 11trong hàng và mất đúng một giây Kết quả là có thể có các cặp vận động viên nào đó đối mặt với nhau, họ lại bắt tay và quay lưng Quá trình trên tiếp diễn và chỉ kết thúc khi không có ai đối mặt nhau (nếu tình huống đó xuất hiện).
Ví dụ nêu ở hình bên có 7 vận động viên Sau 3 giây quá trình bắt tay kết thúc
và đã có 4 lần bắt tay diễn ra.
Yêu cầu: Cho xâu S chỉ chứa các ký tự {L, R} độ dài không quá 100.000.
Hãy xác định quá trình bắt tay kéo dài trong bao nhiêu giây và có mấy lần bắt tay diễn ra Nếu quá trình này không kết thúc thì đưa ra thông báo
NEVEREND.
Dữ liệu: Vào từ file văn bản H_SHAKES.INP gồm một dòng chứa xâu S.
Kết quả: Đưa ra file văn bản H_SHAKES.OUT hai số nguyên kết quả
hoặc thông báo NEVEREND.
Ví dụ:
Bài 3 ĐỒNG TIỀN GIẢ
Có 12 đồng tiền được đánh số từ 1 đến 12, trong đó có một đồng giả Đồng tiền giả có thể nặng hoặc nhẹ hơn đồng tiền thật Các đồng tiền thật có trọng lượng như nhau Để xác định đồng tiền giả người ta thực hiện 3 phép cân trên cân bàn: mỗi lần người ta lấy ra 8 đồng, đặt ở mỗi đĩa cân 4 đồng Kết quả cân được ghi lại dưới dạng:
A B C D r E F G H
Trong đó A, B, C, D, E, F, G, H – số hiệu các đồng tiền, r là một trong số các
ký tự <, = hoặc > cho biết tổng trọng lượng các đồng tiền A, B, C, D nhỏ hơn, bằng hay lớn hơn tổng trọng lượng các đồng tiền E, F, G, H.
Yêu cầu: Cho kết quả ghi chép ba lần cân Hãy xác định đồng tiền giả
hoặc cho biết không thể xác định được vì chưa đủ thông tin (đưa ra thông báo
indifinite) hay vì kết quả cân mâu thuẫn (đưa ra thông báo impossible) Nếu xác định được đồng tiền giả thì đưa ra số hiệu của nó kèm theo dấu “ – “ nếu nó nhẹ hơn đồng tiền thật hoặc dấu “ + “ nếu nó nặng hơn Giữa số hiệu và dấu “ – “ hoặc “ + ” không có dấu cách.
Dữ liệu: Vào từ file văn bản COINS.INP gồm 3 dòng ghi kết quả cân.
Trang 12Kết quả: Đưa ra file văn bản COINS.OUT các thông tin tương ứng xác
Bài 1 BIẾN ĐỔI
Từ một số nguyên Y có thể biến đổi thành số nguyên X nhờ hai phép biến đổi sau:
- Phép biến đổi 1: Y=Y - X nếu Y>X;
- Phép biến đổi 2: Y=Y + 1 nếu Y<X.
Yêu cầu: Cho hai số nguyên X và Y Có thể biến đổi Y thành X được hay
không? Trong trường hợp có thể, tìm tổng số phép biến đổi?
Dữ liệu: Vào từ file văn bản BIENDOI.INP gồm một dòng chứa 2 số nguyên X
và Y.
Kết quả: Đưa ra file văn bản BIENDOI.OUT gồm một dòng ghi tổng số phép
biến đổi tìm được trong trường hợp có thể; số 0 nếu ban đầu X=Y; số -1 nếu không biến đổi được.
tâm đặc biệt đến các số trong hệ cơ số k kết thúc bởi một số lượng lẻ các số 0.
Ví dụ, với k = 2, các số mà Minh yêu thích có thể là 210 = 102, 2410 =110002
Với mỗi cơ số k, Minh đánh số tất cả những số mà mình yêu thích bắt đầu từ 1
theo thứ tự tăng dần.
Trang 13Yêu cầu: Cho n và k (1 ≤ n ≤ 1015, 2 ≤ k ≤ 10) Hãy xác định số thứ n mà Minh yêu thích ở hệ cơ số k Đưa ra số tìm được ở hệ cơ số 10.
Dữ liệu: Vào từ file văn bản COLLECT.INP gồm một dòng chứa 2 số nguyên dương n và k,
Kết quả: Đưa ra file văn bản COLLECT.OUT số nguyên tìm được.
Ví dụ:
4.2 Chọn đội tuyển dự thi quốc gia
Bài 1 Phân tử lượng (6 điểm)
Cho công thức hóa học của phân tử một chất dưới xâu ký tự có độ dài
không quá 20 Trong công thức, nếu một nguyên tử E nào đó gặp liên tiếp n
lần thì sẽ được viết gọn lại là E (2n ≤ ≤ n 9 ) Các nguyên tử trong công thức chỉ
bao gồm H (Hydro), O (Oxy), N (Nitrogen-Ni tơ), C (Carbon – Các bon).
Phân tử lượng là tổng khối lượng các nguyên tử trong phân tử.
Tên nguyên tố Ký hiệu Nguyên tử lượng
Yêu cầu: Cho công thức hóa học Hãy xác định phân tử lượng.
Dữ liệu: Vào từ file văn bản H2O.INP gồm một dòng chứa xâu xác định công
thức hóa học của phân tử.
Kết quả: Đưa ra file văn bản H2O.OUT phân tử lượng dưới dạng số nguyên
Ví dụ:
Bài 2 Xăng sinh học (7 điểm)
Hãng Nanopetro tổ chức đấu thầu xây dựng dây chuyền xăng sinh học có
n đơn vị nộp đơn xin thầu Các thông số chủ yếu của gói thầu thứ i là:
i
A - chi phí lắp đặt dây chuyền sản xuất.
Trang 14B - giá thành một tấn xăng do dây chuyển sản xuất.
i
C - giá thị trường chấp nhận cho một tấn xăng do dây chuyển sản xuất.
Điểm khấu hao là số xăng phải sản xuất để tổng giá bán bằng tổng chi phí lắp đặt với chi phí sản xuất số xăng đó Ban giám đốc Nanopetro muốn có dây chuyền sản xuất với điểm khấu hao thấp nhất.
Yêu cầu: Cho n và các thông số A , i B , i C (i 1 ≤ A B Ci, ,i i ≤ 109, Bi < Ci, 1,2, ,
i = n , 1 ≤ ≤ n 105) Tất cả các giá trị đều nguyên Hãy xác định đơn vị trúng thầu Nếu tồn tại nhiều đơn vị cùng trúng thầu thì đưa ra đơn vị có thứ tự nhỏ nhất.
Dữ liệu: Vào từ file văn bản PETROL.INP:
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ i trong n dòng sau chứa 3 số nguyên A , i B , i C Các số trêni
Bài 3 Đường phố (7 điểm)
Thành phố New Flatcity không lớn lắm nhưng có một điểm rất độc đáo: mọi đường phố đều có độ dài 1 và có tọa độ các điểm đầu và cuối đều nguyên.
Đây cũng chính là điều hấp dẫn khách du lịch Trong toàn thành phố có n đường, đường thứ i các tọa độ đầu, cuối là ( x y và i, i) ( u v Tất cả các đườngi, i)
đều hai chiều.
Tòa thị chính của thành phố tọa lạc tại điểm có tọa độ ( ) 0,0 Thị trưởng mới của thành phố có nhà ở điểm với tọa độ ( p q Ông than phiền là phải mất , )
quá nhiều thời gian để đi từ nhà tới tòa thị chính và ngược lại Ông ra lệnh mở thêm một số đường phố mới để có đường đi từ nhà ông tới Tòa thị chính là ngắn
Trang 15nhất Dĩ nhiên, mỗi phố mới cũng phải có độ dài đơn vị, có tọa độ điểm đầu và cuối là nguyên.
Yên cầu: cho n ( 0 ≤ ≤ n 100 ) , tọa độ điểm đầu và cuối mỗi đường và tọa độ nhà của Thị trường Các tọa độ đều nguyên, không âm và không vượt quá 100 Hãy xác định số đường tối thiểu cần mở thêm.
Dữ liệu: Vào từ file văn bản ROADS.INP:
• Dòng đầu tiên chứa số nguyên n ,
• Dong thứ i trong n dòng tiếp theo chứa 4 số nguyên , , , x y u v ,i i i i
• Dòng cuối cùng chứa 2 số nguyên p và q
Các số trên cách nhau ít nhất một dấu cách.
Kết quả: Đưa ra file văn bản ROADS.OUT một số nguyên – số đường mới cần
Một xâu ký tự S có thể được xây dựng từ một hoặc một số xâu ký tự Ai
cho trước bằng cách ghép chúng với nhau Mỗi xâu Ai có độ dài không quá 10
ký tự, không chứa ký tự trắng và có thể dùng nhiều lần trong việc xây dựng xâu S.
Ví dụ: Xâu S= “Kythichonhocsinhgioi” có thể được xây dựng từ 4 xâu Ai
là: A1=”Ky”; A2=”thi”; A3=”chonhoc”; A4=”sinhgioi”.
Bài toán đặt ra: Cho xâu S và N xâu Ai ; i = 1, 2, 3, …, N; N ≤ 100 Xâu S
có thể được xây dựng từ các xâu Ai hay không? Trường hợp có thể, hãy chỉ ra một cách xây dựng xâu S?
Trang 16Dữ liệu vào: File văn bản có tên: BL1.INP bao gồm: dòng thứ nhất ghi
xâu S; dòng thứ hai ghi số N; N dòng tiếp theo mỗi dòng ghi xâu Ai.
Kết quả ghi ra file văn bản có tên BL1.OUT theo quy cách:
- Nếu xâu S không xây dựng được từ các xâu Ai đã cho thì ghi số 0;
- Nếu xâu S được xây dựng từ các xâu Ai thì ghi chỉ số của các xâu Ai
tìm được trong một cách xây dựng theo thứ tự Hai số trên một dòng cách nhau một ký tự trắng.
0
Bài 2: Tập đoàn ABA
ABA là một tập đoàn hoạt động trên lĩnh vực bảo hiểm ở phạm vi toàn cầu Tập đoàn có không quá 10.000 người và có các công ty con Ta quy ước, Tập đoàn là công ty cấp 1, các công ty chịu sự quản lý trực tiếp của công ty cấp
1 là công ty cấp 2,… Để thuận tiện cho việc quản lý, mỗi người trong tập đoàn được cấp một mã số phân biệt là một số tự nhiên từ 1 đến n Tổng giám đốc tập đoàn mang mã số 1 và được gọi là giám đốc cấp 1 Giám đốc công ty cấp 2 gọi
là giám đốc cấp 2,… giám đốc cấp 1 quản lý trực tiếp các giám đốc cấp 2 Mỗi giám đốc cấp 2 lại quản lý trực tiếp một số giám đốc cấp 3,… Những người không quản lý ai gọi là nhân viên Một người i trong tập đoàn được gọi là dưới quyền người j nếu theo quan hệ quản lý j quản lý i Trong trường hợp này, ta cũng nói j chỉ huy i
Bài toán đặt ra: Cho biết mã số d của một người trong tập đoàn Hãy tìm các giá trị sau:
+ m - Số lượng người dưới quyền d?
+ s - Số lượng giám đốc dưới quyền của d?
+ c - Số lượng giám đốc chỉ huy d?
Trang 17Dữ liệu vào: File văn bản BL2.INP
Dòng đầu chứa 2 số tự nhiên n và d, trong đó n là số người của Tập đoàn ABA, d là mã số của người được chọn.
Tiếp đến là một số dòng, mỗi dòng chứa 2 số tự nhiên v và t, trong đó v là
mã số của một người trong tập đoàn, t là mã số của giám đốc quản lý trực tiếp v Kết thúc là một dòng chứa hai số 0.
Hai số trên một dòng cách nhau một ký tự trắng.
Dữ liệu ra: File văn bản BL2.OUT gồm một dòng chứa 3 giá trị phải tìm
Dữ liệu vào: File văn bản BL3.INP có cấu trúc:
- Dòng đầu ghi 2 số nguyên dương N và k ( 0 < k ≤ N ≤ 10000);
- Các dòng tiếp theo ghi N số nguyên Hai số trên một dòng cách nhau một ký tự trắng.
Kết quả: File văn bản BL3.OUT ghi chỉ số của phần tử có giá trị tuyệt đối lớn thứ k trong dãy Nếu có nhiều phần tử như vậy thì chọn phần tử có chỉ số nhỏ nhất Nếu không có phần tử nào thoả mãn thì ghi số 0.
Trang 185.2 Chọn đội tuyển dự thi quốc gia
Bài 1 MÔN HỌC
Chế độ học theo tín chỉ cho phép Minh đi nghe giảng và thi nhiều môn khác nhau Hôm nay Minh muốn tổng kết lại mình đã học qua bao nhiêu môn trong thời gian qua Tên các môn học đã được ghi lại đầy đủ trong một danh sách, mỗi tên trên một dòng Nhưng việc thống kê các môn học hóa ra cũng không hoàn toàn giản đơn vì 2 lý do Thứ nhất là tên một môn học có thể xuất hiện nhiều lần trong danh sách; thứ hai là do quá vội, tên môn học thường được viết tắt Quy tắc viết tắt khá đơn giản: Minh bỏ một số chữ cái cuối tên, ví dụ
môn “algebra” (Đại số) có thể được ghi trong danh sách là “algebr” hoặc
“algeb” hay đơn giản là “alg”, nhưng không phải là “algra” Hãy xác định số
môn khác nhau mà Minh đã học.
Dữ liệu: Vào từ file văn bản COURSES.INP:
• Dòng đầu chứa số nguyên n là số dòng trong danh sách ( 1 ≤ ≤ n 105),
• Mỗi dòng trong n dòng tiếp theo chứa một xâu chỉ bao gồm các chữ cái
latinh thường và dấu gạch dưới (“_”), mỗi xâu có độ dài không quá 20.
Dữ liệu vào đảm bảo không có hai môn học nào có cùng xâu viết tắt.
Kết quả: Đưa ra file văn bản COURSES.OUT một số nguyên là số môn học
1
Bài 2 ĐỒNG HỒ
Ngân nhận được quà sinh nhật là một con cá heo bằng pha lê tuyệt đẹp, trên đó có gắn một đồng hồ nhỏ với 2 kim giờ và phút Ngân thích thú ngắm nhìn hoạt động của kim phút: cố gắng chạy đuổi theo kim giờ, vượt kim giờ và rồi lại cố gắng đuổi theo kim giờ Ngân có cảm giác kim phút giống như một người có nghị lực trong cuộc sống: luôn luôn có một mục đích phía trước, cố gắng phấn đấu để đạt được mục đích đó và sau khi đã đạt được thì lại đặt mục tiêu mới để phấn đấu.
Trang 19Theo thông lệ, đã đến giờ Ngân phải ngồi vào bàn để học bài Ngân giở
vở ra học nhưng vẫn còn vương vấn một chút với chiếc đồng hồ: kể từ thời điểm
t1 bắt đầu quan sát đồng hồ cho đến bây giờ - thời điểm t2 không biết kim phút
đã mấy lần gặp kim giờ? Trong một ngày đêm kim giờ quay được 2 vòng, còn kim phút quay được 24 vòng Khoảng thời gian mà Ngân quan sát đồng hồ không vượt quá 24 giờ.
Dữ liệu: Vào từ file văn bản WATCHES.INP:
• Dòng thứ nhất chứa thông tin về t1 dưới dạng HH1:MM1 (0 ≤ HH 1 23 ≤ ;
Quán ăn cung cấp cho khách hàng 2 món cháo và phở có khả năng thắng cuộc Theo quy định của Ban Tổ chức, mỗi khách chỉ được ăn một món ở một quán Mỗi khách ăn cháo chỉ cần dùng một chiếc thìa còn khách ăn phở phải dùng một chiếc thìa và một đôi đũa Vì là quán ăn nghiệp dư nên số thìa và đũa
không nhiều lắm: chỉ có n chiếc thìa và m đôi đũa Nếu một khách nào đó đến
gọi món ăn mà quán ăn không còn đủ thìa hoặc đũa cần dùng cho ăn món đó thì quán ăn từ chối phục vụ khách ấy, họ sẽ sang quán khác.
Sáng nay có k khách đăng ký tới quán Người thứ i tới lúc ti, gọi món ăn
ai, ai = 0 nếu gọi cháo, ai = 1 nếu gọi phở Nếu được phục vụ họ sẽ ngồi ăn trong
khoảng thời gian di Không có khách nào cùng đến quán một lúc Việc rửa thìa, đũa được tổ chức rất tốt nên nếu một khách đi ra đúng vào thời điểm khách mới tới thì đũa, thìa của khách trước được rửa sạch và phục vụ được ngay cho khách mới.
Trang 20Yêu cầu: Hãy xác định khách nào được quán ăn phục vụ và khách nào bị quán
ăn từ chối phục vụ để quán ăn có thể thắng cuộc Với những khách được quán
ăn phục vụ , đưa ra thông báo “Yes”; với những khách bị quán ăn từ chối phục
vụ, đưa ra thông báo “No”
Dữ liệu: Vào từ file văn bản GRUEL.INP:
• Dòng đầu tiên chứa 3 số nguyên n, m và k ( 1 ≤ n m k , , ≤ 103),
• Dòng thứ i trong k dòng tiếp theo, mỗi dòng chứa 3 số nguyên ti, di và ai
( 1 ≤ t di, i ≤ 104), thông tin được đưa theo thứ tự tăng dần của ti Hai số trên một dòng cách nhau một ký tự trắng.
Kết quả: Đưa ra file văn bản GRUEL.OUT gồm các thông báo “Yes” hoặc
“No”, mỗi thông báo trên một dòng Dòng i tương ứng với khách thứ i (
6 Năm học 2012-2013
6.1 Chọn học sinh giỏi cấp tỉnh
Câu 1: Số chính phương
Sau tiết học về ‘Số chính phương’, Minh rất thích thú và nghĩ ra một trò
chơi để đố các bạn Minh sẽ nghĩ ra một số nguyên dương bất kì và đố các bạn xem số đó có là tổng của 4 số chính phương hay không Ví dụ: 53=22+22+32+62; 94=22+42+52+72.
Yêu cầu: Em hãy giúp các bạn của Minh tìm cách phân tích một số nguyên
dương N thành tổng các bình phương của 4 số nguyên dương.
Dữ liệu: Vào từ file văn bản CAU1.INP gồm một dòng chứa một số nguyên
dương N (0 < N < 105).
Kết quả: Đưa ra file văn bản CAU1.OUT gồm một dòng ghi 4 số nguyên dương
có tổng các bình phương bằng N Nếu có nhiều cách phân tích thì chỉ đưa ra một cách Nếu không phân tích được thì ghi ra số -1.
Trang 21Ví dụ:
Câu 2: Chỉ số thông minh
Ở vương quốc Alimaza, quốc vương luôn quan tâm đến vấn đề chọn người hiền tài để phục vụ cho đất nước Tiêu chí để lựa chọn người hiền tài của quốc vương dựa trên chỉ số thông minh (IQ) Ở vương quốc Alimaza, mỗi người khi sinh ra đều có cùng một chỉ số IQ Tuy nhiên, mỗi người có các mốc thời gian thay đổi chỉ số IQ là khác nhau Tại thời điểm tuyển chọn, quốc vương sẽ chọn những người có chỉ số IQ cao nhất Mỗi người tham gia tuyển chọn có ba thông tin là s, a, b Trong đó:
• s là năm sinh;
• Từ khi sinh ra đến năm người đó a tuổi, mỗi năm chỉ số IQ của người đó tăng thêm 1;
• Từ năm a tuổi đến năm b tuổi, chỉ số IQ của người đó không thay đổi;
• Từ năm b tuổi trở đi, mỗi năm chỉ số IQ giảm đi 1.
Yêu cầu: Em hãy giúp quốc vương tuyển chọn được những người hiền tài.
Dữ liệu: Vào từ file văn bản CAU2.INP có cấu trúc:
• Dòng đầu tiên chứa 3 số nguyên dương N, d và Y Trong đó N là số người tham gia tuyển chọn, d là chỉ số IQ khi sinh ra, Y là năm tuyển chọn (0
<N ≤ 105; 0 < d ≤ 200; 0< Y ≤ 2012);
• Dòng thứ i trong N dòng tiếp theo chứa các số nguyên dương si, ai, bi là thông tin của người thứ i, các số trên một dòng cách nhau ít nhất một dấu cách (0<si≤ 2012; 0<ai<150; ai≤ bi≤ 150).
Kết quả: Đưa ra file văn bản CAU2.OUT có cấu trúc:
• Dòng đầu ghi số nguyên dương K là tổng số người hiền tài được chọn;
• Mỗi dòng trong K dòng tiếp theo ghi thứ tự của người được chọn
Ví dụ:
T
Trang 22Câu 3: Tìm pho-mát
Chuột Mickey tỉnh dậy khi bố mẹ đã đi làm, chú rất đói bụng và tìm xem bữa sáng của mình ở đâu Chú tìm thấy một tờ giấy mẹ dán trên cánh cửa có nội dung:
“Con trai ngoan của mẹ, con hãy mở cửa ra và sẽ nhìn thấy những miếng
pho-mát béo ngậy Mỗi miếng pho-mát có trọng lượng là w, nhưng để lấy nó mang về nhà con sẽ mất thời gian là t Mỗi lần con chỉ được đi ra và lấy một miếng pho-mát mang về nhà Con hãy tìm cách mang về nhà những miếng pho- mát có tổng trọng lượng lớn nhất sao cho tổng thời gian lấy chúng không được vượt quá L Những miếng pho-mát con mang về nhà là bữa sáng của con đấy !”.
Mickey rất đói bụng nhưng loay hoay mãi không tìm cách nào tối ưu để lấy được những miếng pho-mát về cho bữa sáng.
Yêu cầu: Em hãy giúp Mickey giải bài toán hóc búa trên.
Dữ liệu: Vào từ file văn bản CAU3.INP có cấu trúc:
• Dòng đầu tiên chứa hai số nguyên dương N, L (0< N ≤ 200; 0< L <106) Trong đó N là số miếng pho-mát, L là thời gian giới hạn để lấy những miếng pho-mát;
• Dòng thứ i trong N dòng tiếp theo chứa hai số nguyên dương ti, wi (0< ti ≤
106, 0< wi < 105) Trong đó ti là thời gian để lấy miếng pho-mát i mang về nhà, wi là trọng lượng của miếng pho-mát.
Kết quả: Đưa ra file văn bản CAU3.OUT chứa một số duy nhất là tổng trọng
lượng lớn nhất của các miếng pho-mát lấy được.
Trang 236.2 Chọn đội tuyển dự thi quốc gia
Câu 1: Khôi phục thông điệp
Marica muốn gửi cho Evil một bức thông điệp bí mật Marica đã mã hóa bức thông điệp bằng thuật toán đơn giản là cộng nội dung thông điệp với dãy khoá Thông điệp và khoá bao gồm các chữ cái thường của bảng chữ cái tiếng anh ‘a’, ,‘z’ Công việc mã hoá được thực hiện bao gồm các bước sau:
Bước 1: Viết dãy khoá lặp đi lặp lại cho đến khi độ dài bằng độ dài thông điệp;
Bước 2: Mỗi chữ cái trong khoá và thông điệp có giá trị được qui ước từ 0 đến 25 như sau: a là 0, b là 1, , z là 26;
Bước 3: Cộng giá trị của mỗi chữ cái trong thông điệp với giá trị của mỗi chữ cái tương ứng trong dãy khoá Nếu kết quả lớn hơn 26 thì lấy kết quả trừ đi
26 để nhận được các số nằm trong đoạn từ 0 đến 25;
Bước 4: Cuối cùng, thông điệp được mã hoá là dãy chữ cái được xác định bằng cách chuyển các số thu được ở bước 3 sang các chữ cái theo qui ước: 0 là
a, 1 là b, , 26 là z.
Ví dụ: Bức thông điệp là “sutra” và khoá là “abz” thì bức thông điệp được mã hoá là “svsrb” Vì được mã hoá như sau:
s u t r a +
a b z a b
18 20 19 17 0 +
0 1 25 0 1
Marica gửi cho Evil bức thông điệp đã được mã hóa và khóa tương ứng
Yêu cầu: Hãy giúp Evil khôi phục bức thông điệp bí mật này.
Dữ liệu: Vào từ file văn bản CAU1.INP gồm hai dòng, mỗi dòng là một xâu kí
tự gồm các chữ cái thường của bảng chữ cái tiếng anh ‘a’,…, ‘z’.
- Dòng đầu tiên chứa một xâu S là thông điệp đã được mã hoá, độ dài xâu
S ≤ 1000;
- Dòng thứ hai chứa một xâu K là khóa dùng để mã hóa, độ dài xâu K ≤ 500.
Trang 24Kết quả: File văn bản CAU1.OUT gồm một dòng duy nhất là xâu thông điệp bí
Bước 1: Tính tổng của số N với số được tạo thành bằng cách viết các chữ
số của N theo chiều ngược lại;
Bước 2: Nếu tổng nhận được ở Bước 1 chưa là số đối xứng thì quay lại thực hiện Bước 1 với N là tổng vừa nhận được Nếu tổng nhận được là số đối xứng thì việc sinh ra số đối xứng kết thúc.
Ví dụ: N = 14 thì số đối xứng nhận được là 55 vì 14 + 41 = 55;
N = 48 thì số đối xứng nhận được là 363 vì 48+84=132 , 132+231=363.
Yêu cầu: Cho số nguyên dương N, tìm số đối xứng sinh ra từ N theo cách trên.
Dữ liệu: Vào từ file văn bản CAU2.INP một dòng duy nhất chứa số nguyên
Trang 25mũi tên hướng từ một vòng tròn đến một vòng tròn khác Quy tắc vẽ mũi tên như sau: nếu có ba số ai, aj, ak thỏa mãn ak = ai + aj thì vẽ mũi tên hướng từ vòng tròn i đến vòng tròn k và mũi tên hướng từ vòng tròn j đến vòng tròn k Người chơi sẽ xuất phát từ một trong số N vòng tròn, nhảy lò cò theo các mũi tên đã vẽ
để đi đến các vòng tròn khác Người thắng cuộc sẽ là người nhảy lò cò qua nhiều vòng tròn nhất
Ví dụ: Với 5 vòng tròn và các số trong vòng tròn là 1, 2, 8, 3, 5, trò chơi nhảy lò cò được trình bày trong hình dưới đây:
Khi đó, người thắng cuộc có thể nhảy lò cò được nhiều nhất qua 4 vòng tròn (tương ứng với đường di chuyển được tô đậm trên hình vẽ)
Yêu cầu: Trong trò chơi nhảy lò cò với N vòng tròn đã cho Hãy xác định số
lượng vòng tròn lớn nhất mà người chơi có thể nhảy lò cò qua
Dữ liệu: Vào từ file văn bản CAU3.INP có cấu trúc như sau
- Dòng đầu chứa số nguyên dương N (3 ≤ N ≤ 1000);
- Dòng thứ hai chứa dãy số nguyên dương a1, a2, , aN (ai ≤ 109, i=1,…, N), hai số liên tiếp trên một dòng được ghi cách nhau bởi dấu cách
Kết quả: File văn bản CAU3.OUT chứa một số duy nhất là số lượng vòng tròn
lớn nhất mà người chơi có thể nhảy lò cò qua
Trang 26Khi học về các số tự nhiên, Minh phát hiện ra nhiều điều thú vị về các số
đó, đặc biệt khi học về ước số của một số tự nhiên Minh rất thích thú với việc tìm ra được các ước số của một số tự nhiên n cho trước Minh rất muốn biết với
số tự nhiên n thì nó có bao nhiêu ước số.
Yêu cầu: Hãy lập trình giúp Minh tìm số ước của số tự nhiên n;
Dữ liệu: Vào từ file văn bản CAU1.INP gồm 1 dòng chứa số tự nhiên n (1≤ n ≤
Yêu cầu: Tìm số nguyên dương nhỏ nhất không xuất hiện trong dãy số đã cho.
Dữ liệu: Vào từ file văn bản CAU2.INP
• Dòng 1 chứa số nguyên dương n (1 ≤ n ≤ 109);
• Dòng 2 chứa n số nguyên dương a1, a2,… , an (1≤ ai < 106) Các số cách nhau một dấu cách.
Kết quả: Đưa ra file văn bản CAU2.OUT gồm một dòng chứa số nguyên dương
Trang 27thông suốt nếu có một hoặc nhiều máy tính không thể truyền thông tin đến các máy tính khác.
Yêu cầu: Cho một hệ thống mạng máy tính, hãy xác định số kênh truyền ít nhất
cần bổ sung để mạng máy tính đã cho trở nên thông suốt.
Dữ liệu: Vào từ file văn bản CAU3.INP:
• Dòng 1 chứa hai số nguyên dương n, m ( 2 ≤ n ≤ 20000; 0 ≤ m).
• Dòng thứ i trong m dòng tiếp theo, chứa 2 số nguyên dương ui, vi cho biết kênh truyền tin giữa máy tính ui và máy tính vi (1 ≤ ui, vi ≤ n).
Kết quả: Đưa ra file văn bản CAU3.OUT gồm 1 dòng duy nhất chứa số kênh
truyền tin ít nhất cần bổ sung để mạng máy tính đã cho trở nên thông suốt.
Trang 28Yêu cầu: Cho số tự nhiên K, hãy tìm chữ số thứ K (tính từ trái qua phải) của dãy
số vô hạn mà Minh tạo ra.
Dữ liệu: Vào từ file văn bản CAU4.INP gồm một dòng chứa một số tự nhiên K
(1 ≤ K ≤ 109).
Kết quả: Đưa ra file văn bản CAU4.OUT gồm một dòng ghi chữ số thứ K của
dãy số vô hạn mà Minh tạo ra.
Ví dụ:
Câu 5: Quốc gia IT
Cư dân Quốc gia IT có một đặc điểm lạ lùng là khi hai người gặp nhau trên đường đều bắt tay nhau Nhân dịp ngày lễ của Quốc gia, có n người xuất phát từ Quảng trường đi đến tòa Thị chính trên cùng một tuyến đường Người thứ i xuất phát tại thời điểm ti và đến tòa Thị chính vào thời điểm di Nếu hai người nào đó gặp nhau trên đường đi thì hai người này sẽ bắt tay nhau.
Yêu cầu: Xác định số lượng phần tử của nhóm người (gồm nhiều người nhất)
mà hai người bất kì trong nhóm này đã bắt tay nhau.
Dữ liệu: Vào từ file văn bản CAU5.INP
• Dòng 1 chứa số nguyên dương n ≤ 30000;
• n dòng tiếp theo, dòng i chứa hai số nguyên dương ti ≤ 106; di ≤ 106; ti < di.
Kết quả: Đưa ra file văn bản CAU5.INP một số nguyên dương duy nhất là số
phần tử của nhóm người nói trên.
Câu 6: Nút cha chung
Cây là một cấu trúc dữ liệu quen thuộc trong tin học.
Trang 29Ví dụ: ta có cây với 16 nút (hình bên) Các nút được đánh số từ 1 đến 16 Nút 8 là gốc
Nút x được gọi là nút cha của y, nếu tồn tại một đường đi từ nút gốc tới y
đi qua x Ví dụ: nút 4 là nút cha của nút 16, nút 10 cũng là nút cha của 16 Một
nút đồng thời là nút cha của chính mình Như vậy, các nút 8, 4, 10, 16 là nút cha của 16 Nút 10 được gọi là nút cha trực tiếp của nút 16.
Nút x được gọi là nút cha chung của hai nút khác nhau y và z, nếu nó vừa
là nút cha của y, vừa là nút cha của z Ví dụ, các nút 8 và 4 đều là nút cha chung
của các nút 7 và 16
Nút x được gọi là nút cha chung gần nhất của y và z, nếu nó là nút cha chung của hai nút này và trên đường đi từ x tới y không còn nút cha chung nào khác của y và z Ở cây đang xét, 4 là nút cha chung gần nhất của 7 và 16.
Yêu cầu: Hãy lập trình tìm nút cha chung gần nhất của hai nút khác nhau của
một cây có n nút, các nút được đánh số từ 1 tới n.
Dữ liệu: Vào từ file văn bản CAU6.INP:
• Dòng 1 chứa 2 số nguyên dương n, k (2 ≤ n ≤ 10000, 1 ≤ k ≤ n), n là số nút của cây, k là nút gốc;
• Dòng i trong n-1 dòng tiếp theo chứa 2 số nguyên dương ui và vi (1 ≤ ui, vi
≤ n), ui là nút cha trực tiếp của vi;
• Dòng n + 1 chứa 2 số nguyên dương khác nhau y, z (1 ≤ y, z ≤ n) là 2 nút
15
7
16 12 3
Trang 31If (x<0) And (Int(x)=x) And (Int(x/2)*2=x) then Fx:=x-1;
If (x>0) And (Int(x)=x) And (Int((x-1)/2)*2=x-1) then Fx:=Abs(2*x*x-25*x+50)/Sqrt(x+x*x+x*x*x+1);
End;
- Đọc dữ liệu từ tệp, đưa ra kết quả.
Câu 2 Dãy Farey
Phương pháp 1: Sắp xếp
- Đưa ra tất cả các cặp (t, m) với 0 ≤ t ≤ m ≤ n và UCLN(t,m)=1;
- Sắp xếp tỷ số t/m theo thứ tự tăng dần;
- Đưa ra kết quả.
Phương pháp 2: Sử dụng tính chất của dãy Farey
Ta có một vài tính chất của dãy Farey như sau:
1 Nếu t/m và a/b là hai số liên tiếp trong dãy Farey thì
a/b = min{ x/y | x/y > t/m, y =1 n, x y, (x,y) = 1} ≤ Với y = 1, do x ≤ y nên ta có ngay 1/1 là phần tử lớn nhất trong dãy.
Với mỗi y =2,3, ,n ta xét x/y đầu tiên lớn hơn t/m Từ t/m < x/y ta suy ra
mx > ty nên x > (ty div m) Ta chọn x = (ty div m) +1 sẽ thu được x/y thỏa đồng thời các tính chất sau:
+ 1 ≤ m ≤ n.
+ x/y là số đầu tiên lớn hơn t/m.
Do đó a/b = min{ x/y | y = 2 n, x = (ty div m) + 1} (*).
2 Nếu t1/m1 , t2/m2 , t3/m3 là ba số liên tiếp trong dãy Farey từ (*) sau ra 2.1 t2m1 – t1m2 = 1.
2.2 m1 + m2 > n.
2.3 t2 / m2 = (t1 + t3) / (m1 + m3).
Trang 322.4 t3 = vt2 – t1, m3 = vm2 – m1 với v = (m1 + n) div m2.
Từ tính chất 2.4 suy ra cách xác định t3/m3 khi đã biết t1/m1 , t2/m2.
Ta có ngay 0 /1 F n ∈ ( ) và 1/ n F n ∈ ( ) là 2 phần tử đầu tiên của dãy do đó dãy F(n) hoàn toàn xác định.
1.2 Chọn đội tuyển dự thi quốc gia
Bài 1 Tổng số nguyên liên tiếp
For j:=i to i+l-1 do Tong:=Tong+a[j];
If Tong mod n =0 then
Nhận xét: việc tính Tong =a + +ai,l i i+l-1 bằng lệnh For j:=i to
i+l-1 do Tong:=Tong+a[j] mất nhiều thời gian tính toán có thể thay bằng
i+1,l i+1 i+1+l-1 i,l i+l i
Tong =a + +a =Tong +a -a nghĩa là tính tổng sau có thể sử dụng tổng trước, cải tiến lại chương trình như sau:
a[0]:=0; k:=0; h:=0;
For l:=1 to n do
Trang 34j:=b[Tong]+1;
End;
b[Tong]:=i;
End;
- Độ phức tạp của thuật toán là O n hiệu quả hơn nhiều phương pháp 1. ( )
Chú ý: Không ảnh hưởng đến kết quả bài toán nếu thay a =a mod n i i
Bài 2 Bàn cờ
Phương pháp giải: Ta kiểm tra kết quả bàn cờ ở mối bước đi
- Kiểm tra tại 1 vị trí, nếu tất cả các ô thỏa mãn cùng là một người chơi
Function Check1(i, j, Nguoi: Integer): Boolean;
Trang 35Nhận xét ta có n!=1 2 (n-2) (n-1) n × × × × × Số chữ số 0 cuối cùng của n! là số cặp 2 5 10 × = trong tích trên do đó chữ số cuối cùng khác 0 của n! Là chữ số hàng đơn vị của n!/10k (với k là số cặp 2 5 10 × = ).
Câu 2 Vương quốc Aziama
Phương pháp giải: Đồ thị, tìm kiếm trên đồ thị
* Xác định m và s như sau:
- Xây dựng đồ thị có hướng:
+ Mỗi người trong Vương quốc tương ứng với một đỉnh của đồ thị.
+ Mỗi cung tương ứng người i quản lý người j.
- Tìm kiếm trên đồ thị đã xây dựng (theo chiều rộng hoặc theo chiều sau) với định bắt đầu tương ứng người d.
* Xác định c như sau:
- Xây dựng đồ thị có hướng:
+ Mỗi người trong Vương quốc tương ứng với một đỉnh của đồ thị.
+ Mỗi cung tương ứng người i quản lý người j: cung ngược lại.
- Tìm kiếm trên đồ thị đã xây dựng (theo chiều rộng hoặc theo chiều sau) với định bắt đầu tương ứng người d.
Trang 36- Chú ý: Số đỉnh của đồ thị có thể rất lớn, số cạnh ít ta nên sử dụng danh sách cạnh để biểu diễn đồ thị.
Trang 37Bài 1: Số đoạn con nhiều nhất
- Nhận xét:
+ Tính tổng
n i i=1
Tong= ∑ a + Giả sử dãy đã cho chia thành k đoạn con thoản mãn yêu cầu bài toán, khi đó Tong chia hết cho k và 1 k n ≤ ≤
- Phương pháp: Xét k từ n đến 1, kiểm tra k chia hết Tong không, nếu chia hết thử chia thành các đoạn con có thỏa mãn yêu cầu bài toán không Số k đầu tiên thỏa mãn chính là kết quả của bài toán.
Tong:=0; PhuongAn:=1;
For i:=1 to n do Tong:=Tong + a[i];
For i:=n downto 1 do
If Tong mod i =0 then
Bài 2: Giải hệ phương trình
Trước hết giải và biện luận hệ phương trình đã cho
ac > ; vô nghiệm khi ac ≤ 0 và a ≠ 0 hoặc b ≠ 0
* Nếu b ≠ 0 ⇒ ax2 = − c by ⇒ hệ đã cho vô số nghiệm.
Trang 38+ Nếu e ≠ 0 ⇒ hệ đã cho vô nghiệm.
- Nếu d ≠ 0 , (2) ⇒ x = − e d / thay vào (1) ⇒ by c ae22
d
= − + Nếu b = 0 và cd2 ≠ ae2 hệ đã cho vô nghiệm.
+ Nếu b = 0 và cd2 = ae2 hệ đã cho vô số nghiệm.
+ Nếu b ≠ 0 hệ đã cho có nghiệm x e
- Hệ vô số nghiệm: còn lại.
3.2 Chọn đội tuyển dự thi quốc gia
Bài 1 GIẢM GIÁ
Phương pháp :
- Không ảnh hưởng đến kết quả bài toán nếu ta thêm một số mặt hàng có giá 0 đồng, do đó để tiệp xếp các mặt hàng để đc giảm giá ta thêm một vài mặt hàng có giá 0 đồng sao cho số mặt hàng n chia hết cho 3.
- Sắp xếp các mặt hàng có giá trị từ nhỏ tới lớn;
- Tổng số tiền nhỏ nhất phải chi để mua được n mặt hàng là tổng số tiền
của các mặt hàng có thứ tự khi chia cho 3 dư 0 hoặc 2 hay những mặt hàng có thứ tự khi chia cho 3 dư 1 không phải trả tiền.
Trang 39⇒ RLLLRRRRLL ⇒ a[1]=1, a[2]=3, a[3]=4, a[4]=2):
+ Số lần bắt tay chính là số lần dịch sang trái của L qua R (mỗi R số L bên phải nó);
+ Thời gian bắt tay khả năng dịch trái của L qua R.
{xác định thời gian bắt tay}
For i:=1 to n div 2 do
If Time>0 then Time:=Time-1;
Nhận xét: Phương pháp 2 tốt hơn nhiều phương pháp 1
Trang 40Bài 3 ĐỒNG TIỀN GIẢ
- Đọc dữ liệu các bất đẳng thức, đẳng thức: b[i,j]: i thứ tự bất phương trình, phương trình, j giá trị.
For i:=1 to MaxN do a[i]:=0;
Assign(f, Fi); Reset(f);
- Lập hàm kiểm tra hệ bất phương trình có thỏa mãn không:
Function KiemTra: Boolean;
- Thử lần lượt từng đồng tiền xem thật hay giả: Nếu KQ=0 và Dau=0 thì chưa
đủ thông tin; Nếu KQ=0 và Dau<>0 thì cân mâu thuẫn; Nếu KQ<>0 thì KQ chính là đồng tiền giả và dấu là cân nặng của đồng tiền:
Fillchar(a, Sizeof(a),0);
KQ:=0; Dau:=0;