Bỏ qua đến nội dung
Kho đề HSG Tin 9Đề thi cấp tỉnh/thành phố

Bài 3 · Lập trình

Xoắn ốc

Điểm
6 điểm
Thời gian
1 giây/test
Tên chương trình
spiralp.*
Vào / Ra
spiralp.inp → spiralp.out

Đề bài

Trên một lưới kích thước N×MN \times M ô vuông đơn vị, người ta đặt một quân cờ vào ô trên cùng bên trái. Các ô được điền số từ 1 đến N×MN \times M theo mô hình xoắn ốc, bắt đầu từ ô trên cùng bên trái và hướng sang phải.
Trên lưới, mỗi ô hoặc có màu đen hoặc màu trắng. Ô màu đen hiển thị một hố đen, không thể di chuyển quân cờ vào ô này. Ô màu trắng biểu thị một vị trí hợp lệ, có thể di chuyển quân cờ vào ô này.
Với một số nguyên KK cho trước, bạn cần tìm cách di chuyển quân cờ đến ô được đánh số N×MN \times M bằng cách thực hiện một số bước di chuyển như sau: “giả sử quân cờ đang ở ô ghi số xx thì bạn có thể di chuyển nó vào một trong các ô ghi số x+1,x+2,…,x+Kx + 1, x + 2, \dots, x + K với điều kiện ô đó phải có màu trắng”.
Hãy lập trình xác định hai thông tin sau:

  • Cần thực hiện ít nhất bao nhiêu bước để di chuyển quân cờ đến ô được đánh số N×MN \times M?
  • Gọi F(i)F(i) là số cách di chuyển hợp lệ khi quân cờ đang ở ô màu trắng được đánh số ii, hãy tính giá trị: max⁡(F(1),F(2),…,F(N×M))\max(F(1), F(2), \dots, F(N \times M)).

Hình dưới minh họa một bàn cờ với N=4, M=5N = 4,\ M = 5. Với K=4K = 4, từ ô có số 13 ta có thể đưa quân cờ đến ô có số 15 hoặc 17 nên F(13)=2F(13) = 2.

Hình 1 của bài Xoắn ốc
Hình 1 · chạm để phóng to

Dữ liệu vàospiralp.inp

  • Dòng 1: Chứa ba số nguyên N,M,KN, M, K;
  • Tiếp theo là NN dòng, mỗi dòng chứa MM số nguyên 0 hoặc 1 mô tả lưới. Với số 0 đại diện cho ô màu trắng, số 1 đại diện cho ô màu đen.

Kết quả raspiralp.out

  • Ghi trên một dòng gồm hai số nguyên P,QP, Q là hai thông tin tìm được. PP là số bước di chuyển tối thiểu để quân cờ đến được ô được đánh số N×MN \times M, QQ là giá trị max⁡(F(1),F(2),…,F(N×M))\max(F(1), F(2), \dots, F(N \times M)). Nếu không có cách đưa quân cờ đến ô được đánh số N×MN \times M thì P=−1P = -1.

Ràng buộc

  • Subtask 1: 19% điểm có N=1, M≤30000; K≤100N = 1,\ M \le 30000;\ K \le 100;
  • Subtask 2: 13% điểm có N=1, M≤100000, K≤100000N = 1,\ M \le 100000,\ K \le 100000;
  • Subtask 3: 18% điểm có N≤200, M≤3000, K≤50N \le 200,\ M \le 3000,\ K \le 50;
  • Subtask 4: 50% điểm có N≤200, M≤30000, K≤6000000N \le 200,\ M \le 30000,\ K \le 6000000.

Ví dụ

Ví dụ 1

Dữ liệu vàospiralp.inp
4 5 3
0 1 1 0 1
1 0 1 0 1
0 0 1 0 0
1 1 0 1 1
Kết quả raspiralp.out
7 2

Giải thích

Một trong các cách di chuyển chỉ với bảy bước là: 1→4→7→10→13→15→18→201 \to 4 \to 7 \to 10 \to 13 \to 15 \to 18 \to 20. Không có cách nào di chuyển với số bước ít hơn bảy.
Hai vị trí có nhiều cách di chuyển hợp lệ nhất là 15 và 17.

  • Vị trí được đánh số 15 có thể di chuyển đến 17 hoặc 18
  • Vị trí được đánh số 17 có thể di chuyển đến 18 hoặc 20

Ví dụ 2

Dữ liệu vàospiralp.inp
1 5 1
0 1 0 0 1
Kết quả raspiralp.out
-1 1

Giải thích

Không có cách di chuyển đến ô được đánh số 5.
Q=max⁡(F(1),F(3),F(4))=max⁡(0,1,1)=1Q = \max(F(1), F(3), F(4)) = \max(0,1,1) = 1

Thuộc đề thi

Kỳ thi chọn học sinh giỏi lớp 9 THCS năm học 2023-2024 — Đề thi môn: Tin học

Vĩnh Phúc · Cấp tỉnh · Năm học 2023-2024