Tải bản đầy đủ (.docx) (13 trang)

Đề và đáp án HSG tỉnh Thanh Hóa môn Tin học Năm học 2022 _ 2023

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (458.75 KB, 13 trang )




HƯỚNG DẪN

Bài 1: ROBOT
Vì robot có thể di chuyển chéo nên ta sẽ cho robot đi nhiều bước chéo nhất có thể
để (x1;y1) gần đến (x2;y2) hơn. Khi x1=x2 thì chỉ cần di chuyển y để y1=y2 hoặc khi y1=y2
thì chỉ cần di chuyển x để x 1=x2 và đó cũng là số bước cịn lại. Từ đó ta thấy số bước ít
nhất mà robot phải đi là max của khoảng cách |x1-x2| và |y1-y2|.
Suy ra kq=max(abs(x1-x2), abs(y1-y2))

Bài 2: CHIA KẸO
Có tất cả 3 bạn.
Các bạn sẽ chọn tất cả các túi kẹo có số kẹo chia hết cho 3 và mỗi bạn ăn 1 cái nên
số kẹo còn lại trong túi được chọn sẽ giảm đi 3 cái.
Giả sử có d túi kẹo có số cái kẹo trong túi chia hết cho 3; S là tổng số kẹo trong
các túi kẹo có số kẹo chia hết cho 3. Khi đó kết quả cần tìm chính là d và (s-3*d)/3


Bài 3: MẬT MÃ
Số nguyên dương chia hết cho 30 (bội của 30) là số vừa chia hết cho 3 và vừa chia
hết cho 10. Suy ra số đó cần có tổng các chữ số chia hết cho 3 và có ít nhất 1 chữ số 0 tận
cùng.
Theo đề ra thì chỉ cần hốn vị các chữ số của số bí ẩn để được số lớn nhất là bội
của 30 nên số bí ẩn phải thỏa mãn điều kiện là một số có các chữ số giảm dần và có ít
nhất 1 chữ số 0.
Do số bí ẩn có thể có đến 10 7 chữ số nên ta phải dùng kiểu xâu để lưu trữ dữ liệu
đầu vào
Gọi t là tổng các chữ số trong số bí ẩn; d[k] là xâu chứa số lượng chữ số k trong số
bí ẩn (0≤k≤9)


Dựa vào t và d[0] để biết số đó có là bội của 30 hay không? Nếu là bội của 30 thì
dựa vào mảng d để in ra số số bí ẩn.
Lưu ý: Để tính giá trị cho các phần tử trong mảng d ta hàm push_back() để thêm
vào cho chương trình thực hiện được nhanh hơn

Bài 4: EQLARRAY
Gọi s là tổng của dãy b
• Sau mỗi lần thao tác thì tổng của dãy sẽ tăng lên k đơn vị. Ban đầu a có tổng là 0 nên
tổng của a ln chia hết cho k. Suy ra nếu b có thể thu được từ a thì s phải chia hết cho k
• Để biến a thành b thì ta phải thao tác đúng s/k lần. Vậy mỗi phần tử trong a chỉ được
tăng lên nhiều nhất s/k đơn vị. Suy ra nếu b có thể thu được từ a thì bmax ≤ s/k
Vậy nếu s ⁝ k và bmax ≤ s/k thì có thể biến a thành b, khơng thì không thể


Bài 5: MARIO
Để số nấm ăn được là tối đa thì ta chỉ được quay đầu nhiều nhất 1 lần
Cho i chạy từ -106 đến 106.
Ta sẽ tìm điểm đầu và điểm cuối của quãng đường khi đi K bước từ X đến i rồi quay đầu lại.
VD i=9, X=5, K=8 thì đi từ 5 đến 9 rồi quay lại đến 3 thì điểm đầu quãng đường là 3,
điểm cuối là 9
Sau đó tính số sức mạnh trên qng đường đó bằng mảng cộng dồn.
Đáp án sẽ là max của các kết quả tính được
Xử lí toạ độ âm bằng cách
• Cộng thêm 106 vào toạ độ và chú ý trường hợp điểm đầu bằng 0 lúc dùng cộng dồn
hoặc • Cộng thêm 106+1 vào toạ độ


MỘT SỐ BỘ TEST NHỎ
(BỘ TEST LỚN CÁC BẠN TẢI TRONG FILE ĐÍNH KÈM NHÉ)
Bài 1: ROBOT

ROBOT.INP
2 -1

ROBOT.OUT
11

2 10
10 5

12

-2 5
-5 -5

0

-5 -5
100 123

1111

980 -988
-980 -1234

99968

9876 98734
Bài 2: CHIA KẸO
CANDIES.INP


CANDIES.OUT

11

0

4 0 1 16 0 10 16 7 16 2 7

0

21

4

0 5 16 7 8 14 8 4 10 3 6 4 12 8 12 8 0 17 19 1 11

7

100

35

87 96 64 87 83 84 33 87 87 98 7 45 4 0 19 41 54 62 625
19 6 77 70 80 76 78 89 92 79 64 37 15 3 95 52 59 34
8 79 97 92 67 62 25 89 46 7 45 84 99 45 26 82 3 3
12 72 76 1 64 17 4 42 78 35 74 99 35 41 86 95 99 50
24 63 95 0 74 64 59 46 11 27 2 42 82 52 6 41 94 46
10 78 41 90 69 94 8 42 37 96



Bài 3: MATMA
MATMA.INP

MATMA.OUT

1230

3210

123

-1

12340

43210

503134467917820

987765443321100

341562039466741068

987666654443321100

Bài 4: EQLARRAY
EQLARRAY.INP

EQLARRAY.OUT


Dữ liệu lớn nên mình khơng
copy vào đây được

Bài 5: MARIO
MARIO.INP
10 4 10

MARIO.OUT
76

-13 6
6 24
-11 13
51
-9 21
10 28
3 23
-16 20
-8 17
0 13
20 -3 1

8


15 25
-12 1
-10 7
10 8
-2 8

13 20
-7 14
2 21
1 16
7 20
-14 18
12 20
4 16
51
-1 9
8 23
-17 10
07
6 23
19 13
100 -1000 2
-285 7152
2 19328
-351 8467
-794 32756
130 11854
-4 10236
-618 2046

0


244 3359
-215 5915
-22 7576

185 1496
696 18516
-647 24044
-25 5963
308 12269
25 1211
602 29084
-268 27647
385 22906
291 25350
-588 23282
572 16818
-361 22199
-445 21156
-54 3216
63 22476
-737 2629
-731 7298
-29 2426
121 8032
-114 18595
-891 15522
-546 24520
265 16841
-289 14253


499 27677
-49 18164
-853 1839

665 10934
262 14519
110 26070
-809 13350
-137 792
-374 11790
285 6092
-264 11540
-627 9364
470 6507
18 14885
-304 27912
-219 9749
330 30223
-100 20506
-484 2600
471 27204
-895 9407
554 14096
9 858
-745 32365
816 14989
125 26380
669 17201
723 23441


-163 29416
-74 31606
-72 1049

302 26059
882 4326
-208 18
137 454
813 17895
38 15312
-458 15931
-158 9177
-354 31040
-323 8942
-44 1633
-324 3540
-3 4206
304 22317
115 13964
242 14417
43 11964
597 32208
186 2155
-212 4765
91 8310
368 1354
362 1462
258 12860
340 19328


558 8355
559 32305
-104 13222

-404 21038
353 15993
-513 8157
-55 9561
-239 24442
534 20136



×