Giải cứu thành phố
Đề bài
Mô tả
Một thành phố có toà nhà xếp thành một hàng. Bản đồ mìn của thành phố là một xâu nhị phân độ dài , trong đó ký tự thứ bằng 1 nếu dưới toà nhà thứ có mìn, và bằng 0 nếu không có.
Người rà mìn có thể thực hiện hai loại thao tác, mỗi loại lặp lại bao nhiêu lần tuỳ ý và theo thứ tự tuỳ ý:
- Kích nổ một quả mìn đang có dưới toà nhà thứ , tốn đồng. Khi quả mìn này nổ, nó kích hoạt tiếp hai quả mìn ở hai vị trí và (nếu ở đó có mìn), và phản ứng dây chuyền cứ thế lan ra. Nói cách khác, chỉ cần kích nổ một quả mìn bất kỳ là toàn bộ đoạn mìn liên tiếp chứa nó sẽ nổ hết.
- Đặt thêm một quả mìn xuống một vị trí chưa có mìn, tốn đồng.
Các vụ nổ không làm hư hại toà nhà nào. Hãy tìm số tiền nhỏ nhất cần chi để cuối cùng trong thành phố không còn quả mìn nào.
Dữ liệu vào
- Dòng đầu chứa số nguyên : số lượng bộ dữ liệu.
- Mỗi bộ dữ liệu gồm hai dòng:
- Dòng thứ nhất chứa hai số nguyên và : chi phí kích nổ một quả mìn và chi phí đặt thêm một quả mìn.
- Dòng thứ hai chứa xâu nhị phân mô tả bản đồ mìn.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra trên một dòng số tiền nhỏ nhất cần chi.
Ràng buộc
- Xâu bản đồ chỉ gồm các ký tự
0và1, có độ dài ít nhất . - Tổng độ dài các xâu trên tất cả các bộ dữ liệu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 1 1 01000010 5 1 01101110 |
2 6 |
Bộ 1: hai đoạn mìn cách nhau ô trống. Đặt thêm mìn để nối lại tốn đồng, còn kích nổ riêng từng đoạn chỉ tốn đồng, nên đáp án là . Bộ 2: hai đoạn mìn cách nhau đúng ô. Đặt một quả mìn vào ô đó tốn đồng, sau đó kích nổ một lần tốn đồng, tổng cộng đồng. |
| 3 6 2 10001000100001 10 5 11001100011 4 4 101001 |
24 30 12 |
Trong cả ba bộ, mỗi khoảng trống giữa hai đoạn mìn đều có chi phí lấp bằng đúng (hoặc lớn hơn) chi phí kích nổ thêm một lần, nên chọn cách nào cũng cho cùng kết quả. Bộ 1: đoạn mìn, chi phí . |
Bình luận