1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tổng hợp đề đề xuất kì thi hsg trại hè hùng vương môn tin khối 10,11 năm 2018 có đáp án

81 317 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 81
Dung lượng 2,32 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài 3: Pokemon Go - Nhận xét: Ta chỉ xét các ngôi nhà có Pokemon, giả sử ta có một mảng X chứa các ngôi nhà có Pokemon theo thứ tự tăng dần của chỉ số nhà, khi đó tập hợp các ngôi nhà t

Trang 1

(Đề thi có 03trang)

TỔNG QUAN ĐỀ THI

Bài Tên bài File chương trình File dữ liệu File kết quả Điểm

3 Thuê máy THUEMAY.* THUEMAY.INP THUEMAY.OUT 7

Dấu * được thay thế bởi PAS hoặc CPP của ngôn ngữ lập trình sử dụng tương ứng là Pascal hoặc C++ Bài 1(6 điểm).Khóa số

Vườn quốc gia Xuân Sơn, tỉnh Phú Thọ nổi tiếng với vẻ

đẹp hoang sơ tự nhiên, có hệ sinh thái phong phú và đa dạng

Du khách khi tới đây có thể tận mắt chiêm ngưỡng khu rừng

chò trỉ đẹp nhất miền bắc cùng một số loài thực vật số lượng

lớn như cây rau sắng, dẻ, mộc lan… Ngoài sức hấp dẫn của hệ

động thực vật phong phú, Xuân Sơn còn có nhiều cảnh quan

thiên nhiên kỳ thú thu hút khách du lịch như núi Voi, núi Ten

và núi Cẩn Cùng với các con suối như suối Lấp, suối Thang; với

nhiều thác nước có độ cao trên 50m Màu thác bạc hoà quyện

với màu xanh của rừng già làm cho phong cảnh nơi đây vừa

hùng vĩ vừa thơ mộng

Tại đây, các nhà khảo cổ học đã phát hiện ra một số kho báu bí mậtcủa được các vua Hùng xây dựng rất kiên cố và không thể phá bỏ Họ cho rằng trong đó có thể là những khối tài sản về lịch sử và văn hóa rất có giá trị và họ tìm cách mở cánh cửa của những kho báu

đó

Trên cửa mỗi kho báu có một bảng gồm 2 hàng, hàng 1 đã ghi sẵn

số nguyên dương N (≤10 6 ), hàng 2 chứa 2 khoá số K1 và K2 như hình

- Điều chỉnh khoá số K1 về số bằng số lượng ước nguyên tố của N;

- Điều chỉnh khoá số K2 về số bằng tổng các ước nguyên tố của N thì cánh cửa sẽ tự động mở ra và nhà khảo cổ có thể vào bên trong kho báu một cách dễ dàng

ĐỀ ĐỀ XUẤT CỦA BẮC GIANG: ĐT 01669549287 (Nguyễn Thị Hợp)

Trang 2

2

Ví dụ: Ở nhà kho trên cửa ghi số N=12, có các ước của N là 1, 2, 3, 4, 6, 12 chỉ có 2 ước nguyên tố là 2 và 3 nên K1=2 và K2=5

Dữ liệu: vào từ filevăn bản PASS.INPchứa duy nhất một số nguyên dương N;

Kết quả: Ghi ra filevăn bản PASS.OUT hai số nguyên K1 và K2

Ví dụ:

Ràng buộc:

• Có 30% số các test ứng với 30% số điểm của bài có  ≤ 1000;

• Có 40% số test khác ứng với 40% số điểm của bài có  ≤ 10;

• Có 30% số test còn lại ứng với 30% số điểm của bài có  ≤ 10

Bài 2 (7 điểm).Phần thưởng

Phú Ông có N đồ vật đánh số từ 1 đến N, vật thứ i có giá trị là số nguyên a i Bờm là người luôn đem lại vui vẻ cho Phú Ông mỗi khi ông buồn, nên được Phú Ông ban phần thưởng bằng tổng giá trị các vật liên tiếp từ số hiệu i đến j (1 <i <j, i, j= 1 N) Phú Ông nổi tiếng keo kiệt, đồ vật được cất kỹ trong kho từ rất lâu, nên có vật rất giá trị (a i >=0) nhưng cũng có những vật quá hạn sử dụng, hỏng hóc, cũ kỹ… cho không cũng không ai thèm (a i <0) Như vậy, Bờm có thể nhận được phần thưởng có giá trị âm Tiếng “lành” đồn xa…

Bởi vậy, Phú Ông muốn cải thiện bản chất của mình nên đã thay đổi sang cách tính phần thưởng mới bằng trị tuyệt đối của tổng giá trị các vật mà Bờm được chọn từ vật i đến vật j lớn hơn giá trị S tro trước

Yêu cầu: Bạn hãy xác định giúp Bờm số lượng C cách lựa chọn phần thưởng thỏa mãn điều kiện của Phú Ông đưa ra

Dữ liệu: vàotừ file văn bản ASUM.inp có cấu trúc:

- Dòng 1 chứa 2 số nguyên N và S;

- Dòng 2 chứa N số nguyên a i với i=1,2,…,N

Kết quả:đưa ra file văn bản ASUM.out một số duy nhất C tìm được theo yêu cầu của

Trang 3

3

; ≤ 10 ;

Bài 3 (7 điểm) Thuê máy

Một cửa hàng có n máy tính cấu hình giống nhau Cửa hàng cho thuê máy trong thời gian từ ngày 1 đến ngày 31 trong tháng Đầu tháng cửa hàng nhận được m đơn đặt hàng từ

m người khách được đánh số từ 1 đến m Với mỗi đơn đặt hàng cửa hàng có thể đồng ý hoặc không đồng ý cho thuê máy Gọi tần số sử dụng trong ngày là số máy cho thuê trong ngày

Yêu cầu: Tìm phương án cho thuê để tổng tần số sử dụng là lớn nhất Biết mỗi khách chỉ

được thuê một máy và thuê những ngày trong tháng

Dữ liệu:vào từ file văn bản THUEMAY.INP có cấu trúc:

+ Dòng đầu ghi hai số nguyên dương m, n

+ M dòng tiếp theo, mỗi dòng thứ i ghi thông tin thuê máy của khách hàng i, đầu tiên

là tổng số ngày người khách đó muốn thuê, tiếp theo ghi số hiệu các ngày đó

Kết quả: ghi ra file văn bản THUEMAY.OUT một số nguyên duy nhất là tổng tần số sử dụng

• Có 30% số test ứng với 30% số điểm của bài có  = 10;  ≤ 40;

• Có 30% test khác ứng với 30% số điểm của bài có có  ≥ ;

• Có 40% test khác ứng với 30% số điểm của bài có có ,  ≤ 40;

-HẾT -

Cán bộ coi thi không giải thích gì thêm

Họ và tên thí sinh: Số báo danh:

Trang 4

MÔN TIN HỌC LỚP 10

HƯỚNG DẪN CÁCH LÀM (Tham Khảo) Bài 1: Khóa sô

Bài này yêu cầu chỉ đơn giản là xây dựng sàng lọc ra các số nguyên tố nhỏ hơn hoặc bằng

N Đếm số lượng các số nguyên tố và tính tổng các số nguyên tố đó

Bài 2: Phần thưởng

Giải thuật 1: O(n3

)Duyệt mọi dãy con liên tiếp Tính T là tổng các dãy con liên tiếp từ i đến j

So sánh |T| với S để cập nhật kết quả

Giải thuật 2:O(n2

)Vận dụng QHĐ vào tính mảng tổng tiền tố SUM[i] = a[1]+…+a[i] Sau đó dễ dáng tính được tổng T các phần tử của dãy con liên tiếp từ i đến j với độ phức tạp O(1) So sánh

|T| với S để cập nhật kết quả

Giải thuật 2: O(nlogn): Vận dụng QHĐ vào tính mảng tổng tiền tố SUM[i] = a[1]+…+a[i] Sắp

xếp mảng SUM tăng dần Tìm kiếm nhị phân đề cập nhật kết quả

Bài 3: Thuê máy

Thuật toán duyệt và đánh giá nhánh cận, kết hợp tổ chức dữ liệu khá phức tạp

Subtask 1: Với n=1, chọn khách hàng thuê nhiều ngày nhất để cho thuê

Subtask 2: Với n>=m, đồng ý cho tất cả các khách hàng thuê, tính tổng tần số của tất cả các

khách hàng

Subtask 3:Duyệt tất cả các dãy nhị phân độ dài m Chú ý điều kiện: Tổng số máy cho thuê trong

mỗi ngày đều nhỏ hơn hoặc bằng n để không duyệt các phương án chắc chắn không thể là nghiệm của bài toán

Trang 5

1

TRẠI HÈ HÙNG VƯƠNG LẦN THỨ XIV

TRƯỜNG THPT CHUYÊN HÀ GIANG

ĐỀ THI ĐỀ XUẤT

ĐỀ THI MÔN TIN HỌCLỚP 10

Thời gian: 180 phút Ngày thi /07/2018

(Đề thi có 03 trang, gồm 03 câu)

TỔNG QUAN ĐỀ THI

GIẢI PHƯƠNG TRÌNH NGHIEMPT.* NGHIEMPT.INP NGHIEMPT.OUT 7,0

Ghi chú: Dấu * tương ứng với phần mở rộng PAS hoặc CPP khi học sinh sử dụng ngôn ngữ lập trình PASCAL hoặc C++

Bài 1 SỐ NGUYÊN TỐ

Số nguyên tố p là số tự nhiên chỉ có hai ước là 1 và p Cho số nguyên dương n (n không

có quá 18 chữ số), nếu tách số n (có k chữ số) ra thành nhiều số theo quy luật: Số đầu tiên có một chữ số, số thứ hai có hai chữ số, …, số cuối cùng có k chữ số; mỗi số tách ra đều bắt đầu

từ chữ số đầu tiên của số n, sau đó đến lần lượt các số tiếp theo, …

Ví dụ: Số 12345 được tách thành các số 1,12,123,1234 và 12345

Nếu tách một số nguyên dương n như vậy, có bao nhiêu số nguyên tố được tạo thành, các số đó

là những số nào?

Dữ liệu:Vào từ tệp văn bản SONT.INP gồm một số nguyên dương n

Kết quả:Ghi ra tệp văn bảnSONT.OUT gồm một hai dòng:

+ Dòng thứ nhất là các số nguyên tố được tách ra từ số n, mỗi số cách nhau một dấu cách + Dòng thứ hai là một số nguyên dương chỉ số lượng số nguyên tố đã tách được

Nếu không có số nguyên tố nào thì ghi ra số -1

Trang 6

2

Bài 2 GIẢI PHƯƠNG TRÌNH

Cho hai số nguyên dương nk(1<n≤5,k≤16) và phương trình x1+x2+x3+ +x n =k

Yêu cầu: Tìm nghiệm nguyên dương của phương trình, các giá trị x i (i=1, 2,3, ,n) không trùng nhau trong cùng một nghiệm

Dữ liệu:Vào từ tệp văn bản NGHIEMPT.INP gồm hai số nguyên dương n và k, hai số trên một dòng và cách nhau một khoảng trắng

Kết quả:Ghi ra tệp văn bản NGHIEMPT.OUTcác nghiệm của phương trình, được định dạng như trong ví dụ Nếu phương trình vô nghiệm thì ghi ra số -1

Ví dụ:

2.(2;3) 3.(3;2) 4.(4;1)

Dữ liệu:Vào từ file văn bản CHIADAT.INP gồm 2 dòng:

+ Dòng thứ nhất chứa số nguyên dương N (1<N ≤ 102) là số mảnh đất của bác nông dân + Dòng thứ hai chứa N số nguyên dương ܽ1, ܽ2, … ,ܽN là diện tích của N mảnh đất (0<ܽ1,

ܽ2, … , ܽ N≤ 104)

Hai số ghi trên một dòng được ghi cách nhau bởi dấu cách

Kết quả:Ghi ra file văn bản CHIADAT.OUT gồm 3 dòng:

- Dòng 1: Diện tích đất chênh lệch giữa hai người con

- Dòng 2: Ghi diện tích các mảnh đất người anh được chia

Trang 7

3

- Dòng 3: Ghi diện tích các mảnh đất người em được chia

Hai số ghi trên một dòng được ghi cách nhau bởi dấu cách

Thí sinh không được sử dụng tài liệu, cán bộ coi thi không giải thích gì thêm

Họ và tên thí sinh: Số báo danh:

Họ tên, chữ ký giám thị 1: Họ tên, chữ ký giám thị 2:

NGƯỜI RA ĐỀ

Trang 8

1

ĐỀ THI ĐỀ XUẤT TIN HỌC - KHỐI 10-TRẠI HÈ HÙNG VƯƠNG 2018

Giáo viên ra đề: Nguyễn Hồng Thái: 0915771615 Đơn vị: Trường THPT Chuyên Hạ Long tỉnh Quảng Ninh

qstring.cpp

chess.pas chess.cpp

go.pas go.cpp

20

Bài 1 Truy vấn trên xâu

Bạn được cho một xâu S, nhiệm vụ của bạn là phải trả lời q truy vấn, mỗi truy vấn được biểu diễn bởi

bộ 4 số nguyên (a, b, c, d) Gọi X là xâu tạo bởi các ký tự liên tiếp từ vị trí ađến b trong xâu S, tương tự gọi Y là xâu tạo bởi các ký tự liên tiếp từ vị trí cđến d trong xâu S Vị trí các ký tự trong xâu được đánh

số từ 1 trở đi Bạn hãy cho biết liệu có tồn tại cách sắp xếp lại các ký tự trong xâu Y sao cho ta thu được xâu X?

Dữ liệu: Dòng đầu tiên chứa xâu S (1 ≤ độ dài xâu S ≤ 105

) chỉ gồm các chữ cái tiếng Anh viết thường

Dòng thứ hai chứa số nguyên q (1 ≤ q ≤ 105) là số lượng truy vấn Mỗi dòng trong số q dòng tiếp theo, chứa 4 số nguyên a, b, c, d (1 ≤ a ≤ b ≤ độ dài xâu S, 1 ≤ c ≤ d ≤ độ dài xâu S) miêu tả một truy vấn

Kết quả: Với mỗi truy vấn đưa ra xâu “YES” nếu tồn tại cách sắp xếp lại các ký tự trong xâu Y sao

cho ta thu được xâu X và đưa ra xâu “NO” trong trường hợp ngược lại

• Subtask 1 (10%): 1 ≤ độ dài xâu S ≤ 102, 1 ≤ q ≤ 102

• Subtask 2 (20%): 1 ≤ độ dài xâu S ≤ 103, 1 ≤ q ≤ 103

• Subtask 3 (30%): 1 ≤ độ dài xâu S ≤ 104, 1 ≤ q ≤ 104

• Subtask 4 (40%): Như ràng buộc gốc

Bài 2 Cờ vua

Gnouc rất thích chơi cờ vua và đồng thời cậu ấy còn rất thích lập trình Đó là lý do Gnouc viết một chương trình máy tính chơi cờ vua Tuy nhiên trò chơi cờ vua đơn giản trên bàn cờ 8×8 là quá đơn giản với Gnouc nên cậu ấy muốn sử dụng một bàn cờ vô hạn

Trang 9

2

Trong lúc lập trình Gnouc gặp phải vấn đề lớn đó là kiểm tra trạng thái “chiếu” trên bàn cờ “Chiếu” trong cờ vua là trạng thái mà ở đó quân Vua của một bên đang bị đe dọa bắt mất trong lượt tiếp theo của đối thủ Trong bài toán này, để đơn giản ta chỉ xét trạng thái “chiếu” với một quân Vua trắng và các quân Tượng đen, Xe đen và Hậu đen

Trong cờ Vua các quân Tượng, Xe, Hậu di chuyển như sau:

• Quân Tượng chỉ có thể đi chéo theo bất kì hướng nào nhưng không được phép “nhảy” qua một quân cờ khác

• Quân Xe có thể đi dọc hoặc ngang theo hướng bất kì và cũng không được phép “nhảy” qua một quân cờ khác

• Quân Hậu vừa có thể đi chéo, vừa có thể đi dọc, ngang Tương tự như 2 quân cờ trên, Hậu cũng không được “nhảy” qua một quân cờ khác

Quân Vua gọi là bị chiếu nếu như nó nằm trong phạm vi di chuyển của bất cứ quân Tượng, Xe, Hậu nào Bạn hãy giúp Gnouc kiểm tra xem có phải bàn cờ hiện tại đang ở trạng thái “chiếu” hay không?

Dữ liệu: Dòng đầu tiên chứa số nguyên T (1 ≤ T ≤ 5) là số lượng bộ dữ liệu Tiếp theo là T nhóm

dòng, mỗi nhóm dòng có định dạng như sau:

• Dòng đầu tiên chứa số nguyên n (1 ≤ n ≤5× 105) là số quân cờ đen (Tượng, Xe, Hậu) trên bàn

cờ

• Dòng thứ hai chứa 2 số nguyên r0, c0 (-109 ≤ r0, c0 ≤109) miêu tả vị trí hàng, cột của quân Vua trắng

• n dòng tiếp theo, mỗi dòng chứa bắt đầu bởi 1 trong 3 chữ cái: ‘B’ tương ứng với quân Tượng,

‘R’ tương ứng với quân Xe, ‘Q’ tương ứng với quân Hậu, tiếp theo là 2 số nguyên r, c (-109 ≤

r , c ≤ 109) miêu tả vị trí hàng, cột của quân cờ trên bàn cờ vô hạn

Kết quả: Ghi ra T dòng, mỗi dòng là một thông báo “YES” nếu bàn cờ đang ở trạng thái “chiếu” hoặc

“NO” trong trường hợp ngược lại

Trang 10

3

Có n ngôi nhà được đánh số từ 1 đến n Ngoài ra ta có m Pokémon, Pokémon i sẽ ở trong ngôi nhà có

số thứ tự a i và có giá trị điểm là b i và sẽ biến mất ở thời điểm t i Dữ liệu đảm bảo rằng ở mỗi ngôi nhà chỉ có tối đa 1 Pokémon

Bạn sẽ bắt đầu trò chơi ở ngôi nhà có số thứ tự là k Để di chuyển giữa 2 ngôi nhà liên tiếp cần thời

gian là 1 giây Nhiệm vụ của bạn là đi đến các ngôi nhà, bắt Pokémon và thu về số điểm lớn nhất có thể Giả sử rằng bạn bắt đầu trò chơi ở thời điểm 0 và việc bắt một Pokémon là tức thời và không mất thời gian và tất nhiên khi bắt được một Pokémon thì Pokémon đó sẽ biến mất, kể cả bạn bắt nó ở thời

điểm trước thời gian biến mất của Pokémon đó Lưu ý rằng, do Pokémon i sẽ biến mất vào thời điểm t i

nên bạn cần đến được ngôi nhà chứa Pokémon i tại thời điểm nhỏ hơnt i

Dữ liệu: Dòng đầu tiên chứa 3 số nguyên n, k, m (1 ≤ k ≤ n ≤ 1000, 1 ≤ m ≤ 100) lần lượt là số lượng

ngôi nhà, ngôi nhà bạn xuất phát và số lượng Pokémon trong trò chơi Mỗi dòng trong m dòng tiếp theo chứa 3 số nguyên a i , b i , t i (1 ≤ a i ≤ n, 1 ≤ b i ≤ 100, 1 ≤ t i ≤ 2000) Dữ liệu đảm bảo các Pokémon

được liệt kê theo thứ tự tăng dần của chỉ số nhà, tức là a i <a j nếu i<j

Kết quả: Ghi ra một số nguyên duy nhất là số điểm lớn nhất có thể đạt được

Trang 11

1

HƯỚNG DẪN THUẬT TOÁN

ĐỀ THI ĐỀ XUẤT TIN HỌC - KHỐI 10 - TRẠI HÈ HÙNG VƯƠNG 2018

Giáo viên ra đề: Nguyễn Hồng Thái Đơn vị: Trường THPT Chuyên Hạ Long tỉnh Quảng Ninh

Bài 1: Truy vấn trên chuỗi

- Gọi

- Như vậy số lượng kí tự ℎ trong đoạn xâu liên tiếp [a, b] được tính theo công thức:

Ta thấy rằng, xâu X có thể sắp xếp lại từ xâu Y nếu như số ký tự mỗi loại trong xâu X và xâu Y

o 2 ô (x, y) và (u, v) nằm trên cùng một hàng nếu x = u

o 2 ô (x, y) và (u, v) nằm trên cùng một cột nếu y = v

o 2 ô (x, y) và (u, v) nằm trên cùng một đường chéo chính nếu x – y = u – v

o 2 ô (x, y) và (u, v) nằm trên cùng một đường chéo phụ nếu x + y = u + v

- Ta sẽ lưu lại vị trí của 8 quân cờ đen như sau:

o Với những quân cờ đen nằm trên cùng một hàng với quân vua trắng, ta lưu lại 2 quân cờ:

 Quân cờ có chỉ số cột lớn nhất mà nhỏ hơn chỉ số cột của quân vua

 Quân cờ có chỉ số cột nhỏ nhất mà lớn hơn chỉ số cột của quân vua

o Với những quân cờ đen nằm trên cùng một cột với quân vua trắng, ta lưu lại 2 quân cờ:

 Quân cờ có chỉ số hàng lớn nhất mà nhỏ hơn chỉ số hàng của quân vua

 Quân cờ có chỉ số hàng nhỏ nhất mà lớn hơn chỉ số hàng của quân vua

Trang 12

Bài 3: Pokemon Go

- Nhận xét: Ta chỉ xét các ngôi nhà có Pokemon, giả sử ta có một mảng X chứa các ngôi nhà có

Pokemon theo thứ tự tăng dần của chỉ số nhà, khi đó tập hợp các ngôi nhà ta đã đến bắt Pokemon sẽ là một đoạn liên tục trên mảng X Để thấy rõ điều đó ta xét ví dụ sau:

để đến được ngôi nhà 22 ta có thể đi qua các ngôi nhà 14, 20 mà tổng thời gian đi không đổi Hơn nữa do thời gian bắt Pokemon là bằng 0, vì vậy khi đến nhà 14 và 20, ta cũng sẽ bắt Pokemon (nếu có) Như vậy, đoạn các ngôi nhà ta đến bắt Pokemon sẽ là 11, 14, 20, 22, và đây

là một đoạn liên tiếp:

Hơn nữa ta còn thấy rằng, kết thúc mỗi bước, ta luôn đứng ở một trong hai đầu mút của đoạn liên tiếp ta vừa đề cập ở trên Tại mỗi bước ta sẽ chỉ mở rộng đoạn thêm đúng một phần tử về bên trái hoặc bên phải của dãy đang có

- Từ những nhận xét trên ta có sử dụng thuật toán quy hoạch động để giải bài toán trên Gọi đang có là

lại  = 1

Khi đó ta thấy rằng từ đoạn (left, right) ta sẽ chỉ có 2 trường hợp mở rộng là (left-1, right) hoặc (left, right + 1) Như vậy ta có công thức quy hoạch động sau:

#

Trang 13

3

Trong đó

# Tương tự ta cũng có:

# Trong đó

Trang 14

1

TRẠI HÈ HÙNG VƯƠNG LẦN THỨ XIV

TRƯỜNG THPT CHUYÊN HOÀNG VĂN THỤ

TỈNH HÒA BÌNH

ĐỀ THI ĐỀ XUẤT

ĐỀ THI MÔN TIN HỌC

KHỐI 10

(Đề này có 3 trang, gồm 3 bài)

TỔNG QUAN VỀ BÀI THI

trình Tệp dữ liệu vào Tệp dữ liệu ra Thời gian Điểm

Thay thế kí tự REPLACE.* REPLACE.INP REPLACE.OUT 1 giây 7

Phần mở rộng của tệp chương trình được đặt tùy theo ngôn ngữ lập trình được sử dụng

Bài 1 - Tên trộm

Ở vương quốc Berland, thời đó, người ta quý nhất là diêm (loại đồ vật tạo ta lửa) Một tên

trộm lẻn vào kho diêm của nhà vua Berland, trong kho có m hòm đựng diêm Hòm thứ i chứa a i bao

diêm, với mỗi bao diêm trong hòm này có b i que diêm (các bao diêm là giống nhau) Ba lô của tên

trộm chỉ chứa được không quá n bao diêm Em hãy giúp hắn chọn lấy các bao diêm để số que diêm

hắn lấy được là nhiều nhất có thể Biết rằng tên trộm không có nhiều thời gian để mở các bao diêm

Dữ liệu:

• Dòng đầu chứa hai số nguyên n (1≤ n ≤ 2*108) và m (1 ≤ m ≤ 20)

• Dòng thứ i trong m dòng sau chứa hai số nguyên a i và b i (1 ≤ a i ≤ 10 8,1≤ b i ≤10)

Cho hai xâu ký tự s và t đều có n ký tự là các chữ cái tiếng Anh in thường Người ta muốn

thay thế các ký tự trong hai xâu để chúng giống hệt nhau Với một phép biến đổi, ta có thể thay đổi một số chữ cái trên 2 xâu Bạn hãy tính toán số phép biến đổi tối thiểu để hoàn thành việc này

Chính xác là, Bạn sử dụng các phép biến đổi dạng R(c1, c2) (trong đó c1 và c2 là các chữ cái) Bạn có thể thực hiện một phép biến đổi nào đó với số lần tùy ý để biến đổi một chữ cái c1 thành một chữ cái c2 và ngược lại trên cả hai hai xâu s và t Bạn cần tìm số phép biến đổi tối thiểu để cho

s và t giống hệt nhau Thêm nữa, bạn cần in ra chi tiết về các phép biến đổi đó Xem ví dụ để rõ

hơn

Trang 15

2

Dữ liệu

• Dòng đầu chứa số nguyên n (1 ≤ n ≤ 105) là độ dài các xâu ký tự

• Dòng thứ hai chứa n chữ cái tiếng Anh in thường, mô tả xâu s

• Dòng thứ ba chứa n chữ cái tiếng Anh in thường, mô tả xâu t

Kết quả

• Dòng đầu in ra số nguyên k là tổng số phép biến đổi tối thiếu cần thực hiện

• Trong k dòng tiếp theo, mỗi dòng in ra một cặp ký tự c1, c2 cách nhau một dấu cách để mô tả về

một phép biến đổi Các cặp này có thể in theo trật tự bất kỳ Chú ý, các phép biến đổi có thể không phải duy nhất

Ví dụ

Giải thích ví dụ 1:

Trong ví dụ 1, bạn có thể dùng 2 phép biến đổi: ('a', 'd') và ('b', 'a') Như vậy các chữ cái đầu

sẽ trùng khớp khi ta sẽ thay thế chữ 'a' bằng 'd' Các chữ cái thứ hai sẽ trùng khớp khi ta thay 'b' bằng 'a' Các ký tự thứ ba sẽ trùng khớp khi ta thay thế 'b' bằng 'a' và 'a' bằng 'd'

Bài 3 - Ném bóng vào lỗ

Trò chơi "Holes" dành cho một người với các quy tắc sau đây:

Có dãy N lỗ nằm trên một hàng và được đánh số từ trái sang phải từ 1 đến N Mỗi lỗ có năng lượng riêng, lỗ thứ i có năng lượng a i Nếu bạn ném một quả bóng vào lỗ i,quả bóng sẽ nảy đến lỗ i + a i, sau đó nó sẽ nảy tiếp với quy luật tương tự Nếu không có lỗ với số hiệu như vậy, quả bóng sẽ

nảy ra khỏi hàng Với mỗi thao tác trong Mthao tác, người chơi có thể thực hiện một trong hai hành

động sau:

• Gán năng lượngcho lỗ a với giá trị b

• Ném một quả bóng vào lỗ avà đếm số bước nảy của quả bóng trước khi nó nảy ra khỏi hàng

và viết số hiệu lỗ mà từ đó bóng nảy ra khỏi hàng

Bạn phải thực hiện tất cả các tính toán theo yêu cầu

Dữ liệu

• Dòng đầu chứa hai số nguyên N và M (1 ≤ N ≤ 105, 1 ≤ M ≤ 105) lần lượt là số lượng lỗ trong hàng và số lần chơi

• Dòng thứ hai chứa N số nguyên dương không quá N, làgiá trị năng lượng ban đầu của các lỗ

• M dòng sau mô tả các thao tác Mỗi dòng là một trong hai loại thao tác:

Loại 0: 0 a b

Loại 1: 1 a

3 abb dad

2

a d

b a

8 drpepper cocacola

Trang 16

3

Trong đó, loại 0 có nghĩa là cần gánnăng lượng của lỗ a bằng b, và loại 1 có nghĩa là ném một quả bóng vào lỗ a Các số a và b là nguyên dương không vượt quá N

Kết quả

Với mỗi thao tác loại 1, in ra một dòng chứa hai số tách biệt bởi dấu cách, lần lượt là số hiệu

lỗ cuối cùng quả bóng nảy đến trước khi rời khỏi hàng và số bước nhảy của bóng

Trang 17

4

ĐÁP ÁN VÀ BIỂU ĐIỂM

Bài 1: Tên trộm (6 điểm)

Thuật toán tham lam

Bài 2: Thay thế ký tự (7 điểm)

Sử dụng cấu trúc DSU

Bài 3: Ném bóng vào lỗ(7 điểm)

Chia dãy thành các khối có độ dài K = sqrt(N) lỗ liên tiếp

Với mỗi lỗ i, ta duy trì các thông tin:

• Năng lượng của lỗ :power[i],

• Số hiệu lỗ đầu tiên thuộc khối khác và bóng có thể nảy đến được từ lỗ i bằng một dãy các bước nhảy, ta gọi nó là next[i]

• Số lượng bước nhảy cần thiết để bóng từ lỗ i đến lỗ next[i], ta gọi nó là count[i] Thêm một

lỗ giả N+1 nằm sau lỗ N và nó thuộc về một khối riêng

Để trả lời truy vấn loại 1 (khi bóng được ném), bóng sẽ nảy từ lỗ i đến lỗ next[i] và cứ như

vậy cho đến khi nó đến lỗ N+1 Mỗi lần ta tăng count[i] cho câu trả lời Bóng sẽ nảy không quá N/K lần

Để duy trì truy vấn loại 0 (năng lượng của lỗ i được thay đổi), ta thay đổi power[i], next[i] và

count[i] Sau đó,với mỗi lỗ cùng khối với lỗ i và có số hiệu nhỏ hơn i,ta cập nhật next[i] và power[i] theo thứ tự giảm dần của số hiệu các lỗ Số lần thực hiện không quá K cập nhật

Độ phức tạp thuật toán là O(Nsqrt(N))

Trang 18

(Đề thi có 03trang)

TỔNG QUAN ĐỀ THI

Bài Tên bài File chương trình File dữ liệu File kết quả Điểm

1 Đoạn con tổng 0 SUMSEQ0.* SUMSEQ0.INP SUMSEQ0.OUT 6

2 Cắt hàng CUTLINE.* CUTLINE.INP CUTLINE.OUT 7

3 Làm việc tập thể WORKING.* WORKING.INP WORKING.OUT 7 Dấu * được thay thế bởi PAS hoặc CPP của ngôn ngữ lập trình sử dụng tương ứng là

Pascal hoặc C++

Bài 1(6 điểm).Đoạn con tổng 0

Cho một dãy số nguyên n phần tử A 1 , A 2 , A 3 ,…, A n Một đoạn con liên tiếp của dãy A có

điểm đầu L, điểm cuối R (L≤R) là tập hợp tất cả các phần tử A i với (L ≤ i ≤R) Đếm số

SUMSEQ0.INP SUMSEQ0.OUT

5

2 1 -1 -2 0

4

Trang 19

2

Yêu cầu: Cho ݉, ݊ và ma trận các ký tự Hãy xác định số dòng tối đa có thể xóa được từ đầu ma trận

Dữ liệu: Vào từ file văn bản CUTLINE.INP:

• Dòng đầu tiên chứa 2 số nguyên ݉ và ݊,

• Dòng thứ ݅ trong ݉dòng sau chứa xâu độ dài ݊, tương ứng với dòng thứ ݅ của ma trận

Kết quả: Đưa ra file văn bản CUTLINE.OUT một số nguyên – số dòng tối đa có thể xóa

được từ đầu ma trận

Ví dụ:

CUTLINE.INP CUTLINE.OUT

5 5 alpha tonny space betaa mamaa

2

Ràng buộc:

- Có 60% số test có ݉, ݊ ≤ 100

Bài 3 (7 điểm) Làm việc tập thể

Trong công ty X có N nhân viên rất xuất sắc Tuy nhiên do tất cả đều quá giỏi và quá tự tin, cứ khi nào 2 nhân viên cùng làm việc với nhau thì hiệu suất gần như bằng 0

Họ tốn thời gian vào việc tranh cãi và không quyết định được công việc gì Mỗi nhân viên có giờ làm việc là một khoảng thời gian liên tiếp từ thời điểm ܽ௜ đến thời điểm ܾ௜ Giờ làm việc của mỗi nhân viên là không thể thay đổi do đặc điểm công việc mà họ đảm trách và tính kỳ quặc của họ Do các khoảng thời gian này không giống nhau hoàn toàn,

có thể có những lúc chỉ có một nhân viên làm việc Lúc này thì họ làm việc rất hiệu quả Giám đốc muốn giữ lại một số nhân viên sao cho tổng thời gian làm việc hiệu quả là lớn nhất có thể

Dữ liệu: Vào từ file văn bản WORKING.INP

• Dòng đầu tiên ghi ݊ là số nhân viên (1 ≤ ݊ ≤ 10ହ)

• N dòng tiếp theo mỗi dòng ghi hai số ܽ௜ và ܾ௜ là thời điểm bắt đầu và kết thúc giờ làm việc của nhân viên ݅ (0 ≤ ܽ௜ ≤ ܾ௜ ≤ 10ଽ)

Trang 20

3

Kết quả: Ghi ra file văn bản WORKINGOUT một số nguyên duy nhất là tổng thời gian

làm việc hiệu quả lớn nhất có thể

Cán bộ coi thi không giải thích gì thêm

Họ và tên thí sinh: Số báo danh:

Trang 21

Bài 1 Sử dụng tìm kiếm nhị phân hoặc dùng Map trong C++

Bài 2 Gọi ܾ௜ là độ giống nhau lớn nhất từ đáy trở lên của cột ݅ và cột ݅ + 1 Kết quả là 1 + max ܾ௜ với

1 ≤ ݅ < ݊

Bài 3 Quy hoạch động

Sắp xếp dãy tăng dần theo ܾ௜ Gọi ݂௜ là tổng thời gian hiệu quả nếu người cuối cùng thực hiện là ݅ Với mỗi đoạn [ܽ௜, ܾ௜] ta cần tìm vị trí đoạn ݆ cuối cùng sao cho ܾ௝≤ ܽ௜ Với các đoạn 1 … ݆ ghép trực tiếp với đoạn ݆ mà không có xung đột nên ta chọn giá trị lớn nhất Với các đoạn [݆ + 1, … ݅ − 1] ta có công thức:

݂௜ = ݂௞− 2ܾ௞+ ܾ௜+ ܽ௜Đặt ݃௞ = ݂௞− 2ܾ௞ Ta tìm max ݃௞ với ݇ ∈ [݆ + 1 … ݅ − 1] Sử dụng Interval tree Hoặc có thể dùng ܴܯܳ

vì mỗi điểm ta cập nhật 1 lần và cập nhật từ trái qua phải

Trang 22

(Thời gian làm bài: 180 phút)

-

TỔNG QUAN BÀI THI

trình Dữ liệu vào Dữ liệu ra Điểm

Lập trình giải các bài toán sau:

BÀI 1 PLANES (6 điểm)

Những ngày này Arkady hoạt động như một bộ điều khiển giao thông hàng không tại một sân bay lớn Anh ta điều khiển một đường băng thường chỉ được sử dụng để hạ cánh Vì vậy, anh ta có một lịch trình của máy bay được hạ cánh trong tương lai gần nhất, mỗi lần hạ cánh kéo dài 1 phút

Arkady được yêu cầu chèn một cất cánh trong lịch trình Việc cất cánh mất 1 phút, nhưng vì

lý do an toàn cần có khoảng cách giữa thời gian cất cánh và hạ cánh ít nhất là s phút từ cả hai phía

Tìm thời gian sớm nhất khi Arkady có thể chèn chuyến bay cất cánh

Đầu ra:

In ra 2 số nguyên h và m , giờ và phút từ thời điểm hiện tại của thời gian sớm nhất để Arkady

có thể chèn chuyến bay cất cánh vào đó

Trang 23

Trang 2

23 40

BÀI 2: ADVERTISEMENT (7 điểm)

Hoàng là một người sinh ra và lớn lên tại vùng đất xa xôi, một lần được ra thành phố cùng bố, Hoàng cảm thấy rất ngạc nhiên và không hiểu vì sao ngoài đường lại xuất hiện nhiều biển chữ chạy và trên các biển đó lại xuất hiện chữ to, nhỏ khác nhau như thế Từ đó cậu bé ấp ủ hi vọng lớn lên sẽ mở một cửa hàng quảng cáo cho riêng mình, đến 18 tuổi Hoàng được nhận vào một cửa hàng quảng cáo uy tín, công việc đầu tiên được giao là bố trí thông tin cho một trang quảng cáo bằng corel Trang quảng cáo đó hình chữ nhật kích thước

w x h Nội dung quảng cáo có n từ Khi in trong font chuẩn từ thứ i có độ dài a i và độ cao b i Các từ phải ghi theo đúng trình tự từ trên xuống dưới và từ trái qua phải Người ta muốn chữ phải ghi càng to càng tốt (nhưng vẫn phải nằm trong trang quảng cáo ) Các chữ đều phải được phóng to (hoặc thu nhỏ) theo cùng một tỷ lệ Như vậy, từ thứ sẽ chiếm một diện tích

Nếu một dòng có nhiều từ thì các từ này phải được in với cùng một

độ cao.

Yêu cầu: Hãy xác định hệ số tỷ lệ lớn nhất có thể chọn

Dữ liệu: Vào từ file văn bản AD.inp:

• Dòng đầu tiên chứa 3 số nguyên và

• Dòng thứ trong dòng sau chứa 2 số nguyên và

Kết quả: Đưa ra file văn bản AD.out một số thực với độ chính xác 10-10

• Có 30% test tiếp theo có n ≤ 1000;

• Có 40% test tiếp theo có n ≤ 105

Bài 3 Trồng cây (7đ)

Chuẩn bị vào năm học mới 2018-2019, Đoàn thanh niên Trường THPT Chuyên Hùng Vương có giao

cho các lớp chăm sóc N (3 ≤ N ≤ 3000) cây xanh trong trường được đánh số từ 1 đến N Biết cây thứ i có chiều cao S i (1 S 10 ) ≤ i ≤ 9 và chi phí chăm sóc các cây tương ứng là C i (1 ≤ Ci≤ 10 )8 Trong buổi phân công lao động của lớp 10 Toán – Tin, Lớp trưởng đố các bạn hãy chọn ra 3 cây theo

thứ tự i<j<k sao cho chi phí chăm sóc cây là nhỏ nhất?

• Đầu vào: Dòng đầu tiên số N, dòng thứ 2 chứa N số là độ cao cây theo thứ tự, dòng thứ 3

là N số ghi lại chi phí chăm sóc cây tương ứng

• Đầu ra: Ghi ra 1 số là chi phí chăm sóc cây nhỏ nhất; nếu không tồn tại thì ghi -1

Ví dụ:

Trang 24

• Sub 2: 30% số test tiếp theo có N<=1000

• Sub 3: 40 % số test cuối cùng có N<=3000

-HẾT -

Trang 25

Ý tưởng giải thuật Bài 1: Thuật toán

Bài toán trên dễ dàng giải quyết đây là bài dạng cơ bản, nhận thấy muốn chèn chuyến bay cất cánh đầu tiên vào lịch trình các chuyến bay đang hạ cánh tính từ thời điểm hiện tại ta chỉ cần quy đổi tất cả thời gian ra đơn vị phút

Và đi so sánh thời gian (s) thời gian quy định an toàn cho chuyến bay cất cánh và hạ cánh với

x (x=h*60+m)

Nếu ans+s<x  break

Ngược lại ans = x+s+1

Kết quả cần tìm  cout<<ans/60<<" "<<ans%60<<endl; //ans khởi tạo=0

Độ phức tạp bài toán O(n)

Bài 2: Thuật toán

- Nhập theo yêu cầu bài toán

- Viết hàm kiểm tra điều kiện k thỏa mãn đầu bài:

+> Kiểm tra nếu b[i] == b[i-1] và và chiều rộng trang thiết kế (sw)>=k*a[i];

 Sw=sw-k*a[i];

 Else sh(chiều dài)= sh+k*b[i];

Sw=w-k*a[i];

- Chặt nhị phận để tìm ra k lớn nhất

- Với đầu=0, cuối = w/doule(maxh) ; maxh=max(maxh,a[i])

(các biến nhập theo đầu bài)

Bài 3: Thuật toán: Duyệt kết hợp với QHD để giải quyết bài toán

Trang 26

Trang 1/3

TỔNG QUAN ĐỀ THI

Bài Tên bài File chương trình File dữ liệu File kết quả Điểm

1 Con cháu Vua Hùng đoàn kết DOANKET.* DOANKET.INP DOANKET.OUT 6

3 Các điểm cấp gạo SCAPGAO.* SCAPGAO.INP SCAPGAO.OUT 7

Dấu * được thay thế bởi PAS hoặc CPP của ngôn ngữ lập trình sử dụng tương ứng là Pascal hoặc C++

Câu 1(6điểm).Con cháu Vua Hùng đoàn kết

Vua Hùng Vương thứ I (theo truyền thuyết là Hùng Lân Vương) sau khi thống nhất

15 bộ tộc đã thành lập nhà nước lấy tên là Văn Lang Nhà vua quản lý thần dân của mình bằng cách cấp cho mỗi người dân một số định danh cá nhân (ID) là một số tự nhiên (Tuy nhiên thời bấy giờ công nghệ còn chưa phát triển nên việc cấp ID chưa được khoa học, có

thể có nhiều người có ID giống nhau) Nhà nước Văn Lang lúc bấy giờ có n người dân tương ứng với n số ID là a 1 , a 2 , …, a n Các bô lão thời bấy giờ quan niệm rằng độ đoàn kết

giữa hai người dân có số định danh a i và a j sẽ là a i ^a j (là phép toánxor trong ngôn ngữ lập trình Pascal ngày nay, còn ngôn ngữ C/C++ là ^) Độ đoàn kết của cả đất nước Văn Lang

bằng tổng độ đoàn kết của tất cả các cặp người dân của cả nước

Vua Hùng rất muốn biết độ đoàn kết của đất nước Văn Lang thời bấy giờ, em hãy giúp Vua Hùng tính toán nhé

Dữ liệu vào:Nhập từ tệp văn bản DOANKET.INP có cấu trúc như sau:

• Dòng đầuchứa số nguyên dương n

• Dòng sau ghi n số tự nhiêna 1 , a 2, …, a n, hai số liên tiếp cách nhau bởi một dấu cách

Dữ liệu ra: Ghi ra tệp văn bản DOANKET.OUT một số nguyên duy nhất là độ đoàn kết của

đất nước Văn Lang

• Có 40% số test ứng với 40% số điểm của bài có 1 ≤ n ≤ 1000, 0 ≤a i≤ 1000

• Có 10% số test ứng với 10% số điểm của bài có 1 ≤ n ≤ 1000, 0 ≤a i≤ 10 7

• Có 10% số test ứng với 10% số điểm của bài có 1 ≤ n ≤ 105, 0 ≤a i≤ 1

• Có 40% số test ứng với 40% số điểm của bài có 1 ≤ n ≤ 105, 0 ≤a i≤ 10 7

TRẠI HÈ HÙNG VƯƠNGLẦN THỨ XIX

Trang 27

Trang 2/3

Câu 2(7điểm).Cấp gạo

Vua Hùng thứ I cai trị nhà nước Văn Lang có nhiều chính sách rất ưu việt Ngoài việc cấp số định danh các nhân để dễ quản lý, nhà Vua còn có chính sách quản lý gạo tập trung

và cấp phát cho người dân theo nhu cầu dùng Hàng tháng, mỗi người dân sẽ đưa ra nhu cầu dùng gạo của mình và nhà vua sẽ cấp cho họ theo đúng nhu cầu đó Số gạo trong kho của nhà Vua không hạn chế, tuy nhiên, vào thời bấy giờ còn dùng cân đĩa thăng bằng để cân (để cân một khối lượng gạo nào đó ta sẽ chọn một số quả cân có tổng khối lượng đúng bằng số gạo cần cân đặt lên một bên đĩa cân và múc gạo đặt lên đĩa cân còn lại sao cho cân thăng bằng) Như vậy, có thể có những yêu cầu về khối lượng gạo không thể cân được (do không chọn được những quả cân có tổng khối lượng bằng khối lượng gạo cần cân)

Cho biết cân của nhà vua có m quả cân có khối lượng lần lượt là w 1 , w 2 , …, w m Nhà

Vua nhận được n yêu cầu về khối lượng gạo của người dân là a 1 , a 2 , …, a n Nhà Vua cần thông báo ngay cho người dân biết những yêu cầu nào có thể đáp ứng được, những yêu cầu nào không thể đáp ứng (do không cân được), em hãy giúp nhà vua tính toán việc đó

Dữ liệu vào: Nhập từ tệp văn bản CAPGAO.INP theo định dạng sau:

• Dòng đầuchứahai số nguyên dương m,n

• Dòng thứ hai chứa m số nguyên dương w 1 , w 2 , …, w m

• Dòng thứ ba chứa n số nguyên dương a 1 , a 2 , …, a n

Hai số liên tiếp trên một dòng được ghi cách nhau một dấu cách

Dữ liệu ra: Ghi ra tệp văn bản CAPGAO.OUTmột xâu nhị phân có độ dài n Ký tự thứ i (tính

từ trái sang, ký tự đầu tiên là ký tự thứ 1) là 1 nếu nhu cầu gạo thứ i là cân được và là 0 nếu nhu cầu gạo thứ i là không cân được

• Có 20% số test ứng với 20% số điểm của bài có 1 ≤ m ≤ 10, 1 ≤ n ≤ 1000, 1 ≤ w i , a i ≤ 10 9

• Có 20% số test ứng với 20% số điểm của bài có 1 ≤ m ≤ 20, 1 ≤ n ≤ 10, 1 ≤ w i , a i ≤ 10 9

• Có 20% số test ứng với 20% số điểm của bài có 1 ≤ m ≤ 20, 1 ≤ n ≤ 10 5 , 1 ≤ w i , a i ≤ 10 6

• Có 40% số test ứng với 40% số điểm của bài có 1 ≤ m ≤ 20, 1 ≤ n ≤ 10 5 , 1 ≤ w i , a i ≤ 10 9 Câu 3(7điểm).Các điểm cấp gạo

Vua Hùng thứ I cai trị đất nước Văn Lang hết mực yêu thương dân.Với chính sách cấp gạo cho người dân theo nhu cấu sử dụng, nhà Vua đã ra lệnh cho các quan xây dựng một số điểm cấp gạo để thuận tiện cho người dân đi nhận gạo Người dân đất nước Văn

Trang 28

Trang 3/3

Lang sinh sống thành từng làng dọc theo một trục đường chính (mà ta coi như một trục

tọa độ), có tất cả n làng đánh số từ 1 đến n, làng thứ i có tọa độ là số nguyênx i và có số dân

là số nguyên dươngs i (i = 1, 2, …, n) Nhà Vua muốn xây dựng k điểm cấp gạo, mỗi điểm cấp

gạo sẽ nằm ở 1 làng nào đó (để tiện cho việc trông coi, bảo vệ kho gạo) Người dân khi đi nhận gạo, gần điểm cấp gạo nào sẽ tới điểm cấp gạo đó, độ vất vả của mỗi người dân sẽ bằng khoảng cách từ làng họ sống đến điểm cấp gạo gần làng đó nhất Độ vất vả của cả đất nước sẽ bằng tổng độ vất vả của mỗi người dẫn Nhà Vua rất thương dân nên muốn xây

dựng k điểm cấp gạo sao cho độ vất vả của cả đất nước là nhỏ nhất có thể

Yêu cầu: Tính toán độ vất vả của cả đất nước Văn Lang nếu xây dựng k điểm cấp

gạo hợp lý nhất

Dữ liệu vào: Nhập từ tệp văn bản SCAPGAO.INP có cấu trúc như sau:

• Dòng đầu chứa hai số nguyên dươngn và k

• Dòng thứ hai nghi n số nguyên x 1 , x 2 , …, x n

• Dòng thứ ba nghi n số nguyên dương s 1 , s 2 , …, s n

Hai số liên tiếp trên một dòng được ghi cách nhau một dấu cách

Dữ liệu ra: Ghi ra file văn bản SCAPGAO.OUTmột số nguyên duy nhất là độ vất vả nhỏ

nhất của đất nước Văn Lang

Giải thích: Hai điểm cấp gạođược đặt ở ngôi làng số 2 và số 4 Người dân ở các ngôi làng số

1, 2, 3 sẽ đến điểm cấp gạo số 1 nhận gạo (độ vất vả là 1 + 2 = 3), người dân ở ngôi làng số 4

sẽ nhận gạo ở điểm cấp gạo số 2 Tổng độ vất vả là 3

Ràng buộc:

• Có 40% số test của bài có 1 ≤ k≤ n ≤ 20, 0 ≤ xi ≤ 10 3 , 1 ≤ s i ≤ 10 3

• Có 20% số test của bài có 1 ≤ n ≤ 100, 1 ≤k ≤ 30, k ≤ n, 0 ≤ x i ≤ 10 6 , 1 ≤ s i ≤ 10 3

• Có 40% số test của bài có 1 ≤ n ≤ 1000, 1 ≤k ≤ 30, k ≤ n, 0 ≤ x i ≤ 10 9 , 1 ≤ s i ≤ 10 5

-HẾT -

Cán bộ coi thi không giải thích gì thêm

Họ và tên thí sinh: Số báo danh:

Trang 29

Trang 1/2

Câu 1(6điểm).Con cháu Vua Hùng đoàn kết

Chú ý: Cần dùng số nguyên 64 bít để lưu kết quả

Câu 2(7điểm).Cấp gạo

• Subtask 1, 2 (20% số test có 1 ≤ m ≤ 10, 1 ≤ n ≤ 1000, 1 ≤ w i , a i ≤ 10 9 , 20% số test có 1 ≤

m ≤ 20, 1 ≤ n ≤ 10, 1 ≤ w i , a i ≤ 10 9 ):

Dùng QHĐ hoặc Backtracking để sinh ra tổ hợp các tổng có thể có từ tập các quả cân Lưu các số sinh được này vào một mảng b (Có 2 m số)

Với mỗi a i , tìm kiếm sự xuất hiện của a i trong mảng b

ĐPT: O(n * 2 m ) (Tìm kiếm tuần tự)

Câu 3(7điểm).Các điểm cấp gạo

Chú ý: Cần dùng số nguyên 64 bít để lưu kết quả

TRẠI HÈ HÙNG VƯƠNGLẦN THỨ XIX

THPT CHUYÊN SƠN LA

ĐÁP ÁN ĐỀ THI CHỌN HỌC SINH GIỎI

MÔN: TIN HỌC–LỚP10 ĐỀĐỀ XUẤT

Trang 30

+ Khởi tạo f[i][j] = +∞

+ Với mỗi u = i – 1 j – 1, gọi cost là tổng quãng đường người dân ở các làng nằm giữa u và j cần di chuyển về 2 làng u và j ta có:

f[i][j] = min(f[i][j], f[i – 1][u] + cost)

Kết quả:

min

 

+ 1   ℎ&ể (ề "à ) ĐPT: O(k.n 3 )

Trang 31

Trang /3 1

SỞ GD&ĐT THÁI NGUYÊN

TRƯỜNG THPT CHUYÊN

THÁI NGUYÊN

ĐỀ THI OLYMPIC TRẠI HÈ HÙNG VƯƠNG LẦN THỨ XIV

MÔN: TIN HỌC - KHỐI: 10 Thời gian: 180 phút

Đề thi gồm: 03 trang

TỔNG QUAN ĐỀ THI

Tên bài Tên chương trình File dữ liệu File kết quả

(* = CPP hoặc PAS)

Bài 1 Bánh sinh nhật

Hôm nay là sinh nhật Minh Bà ngoại Minh đã tặng anh một chiếc bánh sinh nhật rất đặc biệt Chiếc bánh có chiều dài L Minh mời N bạn đến dự sinh nhật Để buổi sinh nhật được vui vẻ Minh đã cắt bánh thành từng miếng dài 1 mét và đánh dấu chúng bằng những con số từ 1 đến L, từ trái sang phải Mỗi bạn đến sinh nhật sẽ nhận được một số ID duy nhất (một số nguyên dương từ 1 đến N), cũng như một tờ giấy với hai số nguyên, P và K Mỗi bạn sau đó được phép lấy tất cả các phần từ thứ P đến thứ K Các bạn lấy lần lượt theo số thứ tự từ bạn đầu tiên, tiếp theo là bạn 2 Thứ tự này dẫn đến một số bạn nhận được ít hơn phần bánh ban đầu nghĩ rằng mình sẽ nhận được

Viết một chương trình để xác định bạn dự kiến sẽ nhận được nhiều bánh nhất, và bạn nào thực sự có nhiều nhất

Dữ liệu vào: file bai1.inp

• Dòng đầu tiên chứa số nguyên dương L (1 ≤ L ≤ 1000), chiều dài của bánh sinh nhật

• Dòng thứ hai chứa số nguyên dương N (1 ≤ N ≤ 1000), số lượng bạn của Minh

• Mỗi dòng trong số N dòng sau chứa hai số nguyên dương Pi và Ki (1 ≤ Pi ≤ Ki ≤ L, i

= 1 N)

Dữ liệu ra: file bai1.out

• Dòng đầu tiên của đầu ra phải chứa số thứ tự của bạn đang mong đợi để nhận được nhiều bánh nhất

• Dòng thứ hai chứa số thứ tự của bạn, người thực sự đã nhận được nhiều bánh nhất

• Trong cả hai trường hợp, nếu có nhiều hơn một bạn thỏa mãn điều kiện, hãy xuất ra bạn có ID nhỏ nhất

Trang 32

Trang /3 2

Điểm

• 60% số điểm cho trường hợp số đầu tiên chính xác

• 40% số điểm cho trường hợp số thứ hai chính xác

Bài 2 Tìm từ

Minh đang đọc những lá thư cũ của bà ngoại và vô tình nhìn thấy một từ dài N nhưng

đã bị đổ mực ra Minh viết lại từ này trên một mảnh giấy bằng cách thay thế M các chữ cái khó đọc bằng ký tự '#' Anh đưa mảnh giấy cho bà ngoại của mình và bà đưa cho anh K các ứng cử viên khác nhau cho các ký tự không đọc được Sau đó, Minh đã viết tất cả các từ có thể trong một quyển sổ ghi chép và quyết định xem xét kỹ tính chất của chúng để xác định những từ gốc là gì Sau khi nhìn thấy những từ được viết trong sổ ghi chép, bà của anh nhận

ra rằng từ họ đang tìm kiếm là từ thứ X theo thứ tự bảng chữ cái Bạn hãy xác định giúp Minh từ gốc

Dữ liệu vào: file bai2.inp

• Dòng đầu tiên chứa các số nguyên N, M, K và X (1 ≤ N ≤ 500, 1 ≤ M ≤ N, 1 ≤ K ≤

• Số X sẽ luôn nhỏ hơn hoặc bằng tổng số từ có thể được tạo

Dữ liệu ra: file bai2.out

• Dòng đầu tiên của đầu ra phải chứa từ thứ X theo thứ tự bảng chữ cái

Các từ theo thứ tự là: “pololjeni”, “pololjeui”, “pololjezi”, “poooljeni”, “poooljeui”, “poooljezi”,

“posoljeni”, “posoljeui”, “posoljezi”

• 1 ≤ i1< i2 < …< ip ≤ N

• A[i1 ] < A[i2] < … < A[ip]

Trang 33

Trang /3 3

• P lớn nhất có thể được

Yêu cầu của bài toán là bạn phải chỉ ra tất cả các số đặc biệt của dãy A theo định nghĩa ở trên

Input : Dữ liệu vào từ file bai3.INP :

• Dòng đầu là số T (1 ≤ T ≤ 10) là số bộ test bạn phải giải quyết

• T nhóm dòng sau,mỗi nhóm gồm 2 dòng:

• Dòng đầu là số N

• Dòng thứ 2 chứa N số nguyên từ 1 tới N

Output : Dữ liệu ra ghi lên file bai3.OUT gồm 2*T tương ứng với T test mỗn test ghi hai

dòng dòng 1 là số lượng số tìm được, dòng 2 ghi các số đặc biệt của bộ test tương ứng theo thứ tự tăng dần

Trang 34

Bài 1

Mỗi bạn sẽ mong muốn nhận K - P + 1 miếng bánh

Khi một bạn lấy phần bánh tại một thời điểm nó có thể đã xảy ra là bạn đó không thể lấy phần được cung cấp vì ai đó đã lấy nó rồi Do đó, chúng ta tạo ra một mảng có chiều dài tối đa là 1000, trong đó chúng ta khởi tạo mọi phần tử thành giá trị 1 (mọi phần nằm ở vị trí của nó)

Đối với mỗi bạn đánh số i, chúng ta tính tổng các giá trị trong mảng được đánh dấu từ Pi đến Ki; Ngoài ra, trong khoảng thời gian đó, chúng ta thay đổi mọi giá trị 1 thành 0 (phần không còn ở đó nữa) Trong phần này, chúng ta giữ giá trị lớn nhất của tổng

Độ phức tạp thời gian của giải pháp này là O (M * K lg K)

Bài 3

Gọi K,F[I],G[I} lần lượt là độ dài của dãy tăng dài nhất,dãy tăng dài nhất kết thúc tại A[I],dãy tăng dài nhất bắt đầu từ A[I].Như vậy A[I] là một số đặc biệt khi và chỉ khi F[I]+G[I]=K+1.Do đó bài tóan đã được đưa về dạng quy họach động cơ bản thường thấy

là tìm dãy con tăng dài nhất.Cách giải thông thường với lọai bài này có độ phức tạp N2,dĩ nhiên không thể áp dụng ở đây do N quá lớn (≤ 105 ).Vì vậy ta cần phải hướng tới một thuật giải khác có độ phức tạp nhỏ hơn, cụ thể:

• Gọi F[I] là độ dài dãy tăng dài nhất kết thúc tại I,S[I] là giá trị nhỏ nhất trong số các phần tử kết thúc của các dãy tăng có độ dài I

• Tại mỗi thời điểm I:lưu giữ K là độ dài của dãy con tăng dài nhất tới thới điểm đó.Tìm

J max sao cho S[J]<A[I] khi đó :

• F[I]:=J+1

• Nếu S[F[I]]>A[I] thì S[F[I]]:=A[I]

• Nếu F[I]>K thì K:=F[I]

• Với cách tính như trên dễ thấy tại mỗi thời điểm dãy S là dãy tăng : S[1]<S[2]<….<S[I] (có thể chứng minh bằng quy nạp ) Điều này có nghĩa là mỗi lần tính J ta chỉ phải tốn thời gian tỷ lệ với logN,do đó độ phức tạp của thuật tóan chỉ là NlogN

Trang 36

1

TỔNG QUAN ĐỀ THI

trình File dữ liệu File kết quả

Điểm

2 Cắt bánh CATBANH.* CATBANH.INP CATBANH.OUT 7

Dấu * được thay thế bởi PAS hoặc CPP của ngôn ngữ lập trình sử dụng tương ứng là Pascal hoặc C++

Câu 1 (6,0 điểm) Mua quà

Phú Thọ không chỉ là nơi có nhiều danh lam thắng cảnh nổi tiếng mà còn có nhiều đặc sản ngon Vốn là một người nhiều tiền, Cô Thái quyết định chi S đồng tiền túi của mình

để mua đặc sản biếu cho mỗi đội tham gia Trại hè Hùng Vương lần này Cô Thái cũng đã

lên danh sách K món đặc sản được đánh số từ 1 đến K sẽ mua để làm quà cho mỗi đội, đội nào cũng sẽ được mua giống nhau gồm K món đặc sản trên

Có N đại lí đã đến chào hàng và đưa ra giá cho mỗi đặc sản mà Cô Thái dự định sẽ mua Đại lí thứ i đề xuất K số nguyên dương d i1 , d i2 , …, d iK là giá cho K món đặc sản Cô Thái quyết định chọn K món đặc sản của các đại lí để đặt mua hàng Cụ thể, Cô Thái muốn

đưa ra được bộ K số nguyên dương D1 , D 2 , …, D K thỏa mãn các điều kiện sau:

• D 1 + D 2 + … + D K =S

• D 1 ≤ D 2 ≤ … ≤ D K

• Có ít nhất một đại lí đề xuất giá D i cho đặc sản thứ i với mọi 1 ≤ i ≤ K

Nếu có nhiều bộ giá thỏa mãn thì Cô Thái muốn chọn sao cho đặc sản có chỉ số nhỏ

có giá càng nhỏ càng tốt

Dữ liệu vào: Nhập từ tệp văn bản MUAQUA.INP theo định dạng sau:

• Dòng đầu chứa ba số nguyên dương K,N và S, mỗi số cách nhau bởi một dấu cách

• Dòng thứ i trong số N dòng tiếp theo chứa K số nguyên dương d i1 , d i2 , …, d iK là giá đề

xuất của đại lí thứ i cho các đặc sản từ 1 đến K, mỗi số cách nhau bởi một dấu cách

Dữ liệu ra: Ghi ra tệp văn bản MUAQUA.OUT theo định dạng sau:

• Nếu tìm được một bộ giá thỏa mãn yêu cầu:

 Dòng đầu ghi “YES”

 Dòng sau ghi K số nguyên D 1 , D 2 , …, D K, mỗi số cách nhau một dấu cách

• Nếu không tồn tại bộ số thỏa yêu cầu bài toán, ghi ra “NO”

Thời gian: 180 phút (không kể thời gian giao đề)

Đề thi có 03 trang

Trang 37

2

• Có 30% số test ứng với 30% số điểm của bài có 1 ≤ K, N ≤ 5, 1 ≤ S ≤ 100;

• Có 30% số test ứng với 30% số điểm của bài có 1 ≤ K, N ≤ 10, 1 ≤ S ≤ 500;

• Có 40% số test ứng với 40% số điểm của bài có 1 ≤ K, N ≤ 20, 1 ≤ S ≤ 2000

Câu 2 (7,0 điểm) Cắt bánh

Hôm nay là ngày sinh nhật của thầy Cường Đội tuyển của thầy tặng cho thầy một chiếc bánh sinh nhật vuông kích thước N x N chia thành các ô vuông đơn vị, trên mỗi ô vuông có ghi một số nguyên dương tương trưng cho sự may mắn

Học trò yêu cầu thầy cắt một miếng bánh cho riêng thầy theo yêu cầu sau:

- Miếng bánh của thầy có hình tam giác vuông cân cạnh có độ dài bằng K, cạnh huyền song song hoặc trùng với đường chéo chính của chiếc bánh

- Góc vuông của tam gác luôn có hướng Đông - Bắc

- Hai cạnh vuông nối tâm chính giữa của các ô vuông đơn vị, các đỉnh của chiếc bánh nằm giữa tâm của ô vuông đơn vị

- Tổng may mắn của miếng bánh là lớn nhất Tổng may mắn của miếng bánh bằng tổng giá trị trên các ô mà cạnh của miếng bánh được cắt qua hoặc nằm trọn vẹn bên trong của miếng bánh

Dữ liệu vào: Từ tệp văn bản CATBANH.INP có cấu trúc như sau:

• Dòng 1: Chứa hai số nguyên N và K (1 ≤ K < N ≤ 500)

• N dòng sau, mỗi dòng chứa N số nguyên dương có giá trị không lớn hơn 109

Dữ liệu ra: Ghi ra tệp văn bản CATBANH.OUT gồm một số nguyên duy nhất là tổng độ

may mắn lớn nhất mà Thầy Cường cắt được

• Có 30% số test ứng với 30% số điểm của bài có K=1;

• Có 30% số test ứng với 30% số điểm của bài có N≤ 100;

• Có 40% số test còn lại không có ràng buộc gì thêm

Câu 3 (7,0 điểm) Bờm chuyển gạo

Bờm là một công nhân của một công ty tinh chế và chế biến lương thực, hôm nay

công ty có nhập khẩu N bao gạo, đánh số từ 1 đến N, bao gạo thứ i có khối lượng là M igam

(M i nguyên dương) Bờm phải vận chuyển N bao gạo này cất vào trong kho theo một trình

tự nào đó Theo yêu cầu của giám đốc, các bao gạo sau khi đưa vào trong kho sẽ được san sang nhau sao cho bao nào cũng có khối lượng là một số nguyên đồng thời không có hai bao

nào chênh lệch nhau quá 1 gam

Bờm quá “thông minh” đến mức sau khi chuyển thêm được một bao gạo nào vào trong kho Bờm lại thực hiện việc san gạo giữa các bao ở trong kho luôn (theo yêu cầu như ở

Trang 38

Dữ liệu vào: Từ tệp Rice.inp có cấu trúc như sau:

- Dòng 1: Chứa số nguyên dương N (N<=20)

- Dòng 2: Chứa N số nguyên dương M 1 , M 2 , ,M N (M i ≤ 10 9 )

Kết quả: Ghi ra tệp Rice.out gồm một số nguyên duy nhất là chi phí nhỏ nhất tìm

• Có 50% số test ứng với 30% số điểm của bài có N≤ 10;

• Có 50% số test còn lại không có ràng buộc gì thêm

- Hết -

Người ra đề: Lê Thái Hòa 0917.103.563

Trang 39

4

Câu 1: Mua quà

Dùng duyệt kết hợp với nhánh cận

- Với mỗi i = 1,…,M: Sắp xếp các giá trị d[i, 1], d[i, 2], …, d[i, N] tăng dần

- Khi xét đến điểm của bài thứ i, giả sử điểm của bài trước đó là prevD và tổng điểm cùng những 1, 2, …, i – 1 là t, khi đó ta duyệt qua các giá trị d[1, i], d[2, i], …, d[N, i] thỏa

cận dưới ≤ d[j, i] ≤ cận trên Ở đó cận dưới = prevD, cận trên = (S - t) div (K - i + 1)

Câu 2: Cắt bánh

Dùng duyệt kết hợp tính toán trước, quy hoạch động giống như bài chọn đội hình của

đề lớp 11 nhưng không phải tính nửa trên đường chéo chính của hình vuông

Câu 3: Bờm chuyển gạo

- Dễ thấy rằng không gian bài toán chính là hoán vị của dãy gồm N phần tử, vì vậy ta

không thể giải quyết bài toán bằng phương pháp vét cạn thông thường

- Ta có nhận xét sau:

+ Giả sử sau khi vận chuyển vào kho và san đều được các bao gạo i, j, ,k có chi phí tối thiểu là F

+ Tiếp theo ta sẽ chuyển bao gạo thứ p vào kho, khi đó gọi tổng chi phí là F 1, để ý ta

thấy F 1 chỉ phụ thuộc vào F, trung bình cộng của M i , M j , M k , M P Nghĩa là nếu đã tính được

F khi tính F 1 ta không cần quan tâm đến thứ tự của việc vận chuyển i, j, ,k trước đó

+ Từ phân tích trên ta có thể rút gọn không gian bài toán từ việc xét các hoán vị i,

j, ,k thành một trạng thái "đã chuyển các bao gạo i, j, ,k"

+ Để đơn giản ta có thể sử dụng véc tơ X có độ dài N, đánh số từ phải qua trái (tiện cho việc xử lí bit), với X i = 0 tương ứng với việc chưa vận chuyển bao gạo thứ i, ngược lại

X i =1 tương ứng với việc đã vận chuyển bao thứ i vào kho Như vậy không gian của bài toán chuyển từ N! rút gọn thành 2 N

Công thức qui hoạch động:

- Giả sử đã tính được F[X] là chi phí san gạo nhỏ nhất với trạng thái X

- Ta sẽ xét tất cả các bao gạo thứ p có thể chuyển vào thêm, rõ ràng điều kiện là bao

thứ p trước đó phải chưa được chuyển vào, tức là bít thứ p của X bằng 0

- Ta sẽ tính được giá trị của các trạng thái Y (sau khi chuyển bao gạo thứ p) với Y = X

+ 2 p theo công thức:

F[Y]:=min(F[Y], F[X] + chi phí san gạo);

- Vậy độ phức tạp chung của thuật toán là O(N*2 N

).

-

HƯỚNG DẪN GIẢI THUẬT MÔN: TIN HỌC – LỚP 10

Trang 40

ĐỀ ĐỀ XUẤT MÔN TIN 10

An được cho trước một xâu A=A1A2A3 An chỉ gôm các chữ cái tiếng anh in thường

An chỉ được phép chọn 2 số l, r (1 ≤ ݈ ≤ ݎ ≤ ݊) bất kì đúng một lần và đảo ngược xâu a l a l+1 a l+2 a r Lưu ý: Phép đảo ngược xâu là phép biến đổi xâu ban đầu thành một xâu mới có thứ tự các kí tự ngược lại so với xâu ban đầu Ví dụ “abcd”->”dcba”, “aacb”->”bcaa”,

Hỏi An có thể tạo ra tối đa bao nhiêu xâu khác nhau

Bài 3: CLASSROOM

Vào thời điểm 0 ban đầu, các bạn trong lớp học cô H đang xếp thành một hàng dài Mỗi bạn trong lớp học đó đang quay mặt về 1 trong 2 phía : Trái hoặc Phải

Ngày đăng: 22/04/2021, 12:34

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w