PDA

View Full Version : Bài này xin nhờ các cao thủ chỉ giáo. Năn ni đó mà



chienthan_cucu
23-07-2010, 10:23
Cho 1 lưới tọa đô 1..n,1..m(n,m<100)
trên lưới có các tòa nhà
Đia bay của người ngòai hành tinh muốn hạ cánh xuống mặt đất
Hỏi phải xây nhà ở các tọa độ nào
Sao cho số nhà xâyy là ít nhất
để cho đỉa bay ko hạ cánh dc xuống mặt đất
nếu hạ cánh thì sẽ vướng vào các tòa nhà
hình dạng đĩa bay nhập vào từ file
ai giải dc tại hạ xin bái làm sư phụ muốn tại hạ lam gì cho các hạ cũng dc.
Có gì thắc mắc xin lien hê YM:chienthan_cucu
Thank

Long_Phung
27-07-2010, 18:11
Tôi không biết thuật toán tối ưu cho bài này, như theo tôi thì làm như sau:
- Áp hình dạng của đĩa bay lên lưới, đặt tại tọa độ tâm của nó 1 tòa nhà.
- Dịch chuyển đĩa bay lần lượt theo chiều dọc và ngang. Khi vừa đủ để nó không chạm tòa nhà vừa đặt thì thêm 1 tòa nhà tiếp theo cũng theo tọa độ tâm.
-Lặp lại cho đến khi hết lưới.

Đảm bảo nó sẽ không hả dược, và số nhà cũng là ít nhất. ( theo suy luận của tôi)

xuanhau
27-08-2010, 13:01
bài này là phép nghịch đảo của dạng tổng quát bài "Đặt quân Hậu".
Thuật giải theo tôi thế này (vì chưa chắc là tối ưu):

1. Đơn vị nhỏ nhất của tòa nhà là 1x1
2. Dùng đệ quy để xác định tất cả các phương án đặt Đĩa bay không trùng nhau để có số lượng là lớn nhất. (kích thước đĩa bay đã cho trước)
3. Trong mỗi phương án tìm ra ở trên, đặt 1 tòa nhà 2x2 ở vị trí giao nhau của các đĩa bay.
4. Phép hợp của các vị trí trong bước 3 là kết quả

Mọi người cho góp ý!