trang chủ / bài tập / hshoe / lời giải

Móng ngựa

Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Tác giả: huunguyenhuunguyen

Lời giải: Móng ngựa

Hướng tiếp cận

DFS backtracking từ góc trên trái, thu thập theo hai pha: pha ( rồi pha ).

Nhận xét quan trọng

  1. N5, lưới tối đa 5×5=25 ô — không gian tìm kiếm nhỏ.
  2. Chuỗi hợp lệ dạng k dấu ( + k dấu ): chỉ cần thu thập ( liên tục đến khi gặp ), rồi chỉ thu thập ).
  3. Cắt tỉa: nếu đã vào pha )numopen=numclose, dừng.

Thuật toán

DFS từ (0,0) với trạng thái (x,y,open,close,closing):

  • Pha mở (closing=false): có thể thu thêm ( hoặc chuyển sang pha đóng.
  • Pha đóng (closing=true): chỉ thu thêm ).

Độ phức tạp

  • Thời gian: O(4N2) (giới hạn thực tế nhỏ hơn nhiều do cắt tỉa)
  • Bộ nhớ: O(N2)

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0