Vui lòng! Làm thế nào để giải quyết câu hỏi này? (C++)

lập trình


Đây là một câu hỏi tôi đã gặp phải khi thực hành hàng ngày:

Nông dân John có N con bò trong một hàng (1 Dòng đầu tiên chứa N, số lượng bò mà nông dân John có.
Dòng tiếp theo chứa chuỗi bit ký tự N chỉ có 1 và 0, trong đó số 1 đại diện cho một con bò bị nhiễm bệnh và số 0 đại diện cho một con bò không bị nhiễm bệnh sau một số đêm.

ĐỊNH DẠNG ĐẦU RA
Xuất ra một số nguyên duy nhất: số lượng bò tối thiểu có thể bắt đầu bị bệnh.

ĐẦU VÀO MẪU:
5
11111
ĐẦU RA MẪU:
1
Giả sử con bò ở giữa là con bò duy nhất bắt đầu bị nhiễm bệnh. Sau đó bò sẽ bị nhiễm bệnh theo thứ tự sau:

0 đêm: 00100 (con bò thứ 3 bị nhiễm bệnh ban đầu)
1 đêm:01110 (con bò thứ hai và thứ tư hiện đã bị nhiễm bệnh)
2 đêm: 11111 (con bò thứ nhất và thứ năm hiện đã bị nhiễm bệnh)
3 đêm: 11111 (tất cả bò đều đã bị nhiễm bệnh nên không còn con bò nào bị nhiễm nữa)

Sau hai đêm trở lên, trạng thái cuối cùng của những con bò sẽ giống như đầu vào. Có nhiều trạng thái ban đầu và số đêm khác có thể tạo ra trạng thái đầu vào, chẳng hạn như:

0 đêm: 10001
1 đêm: 11011
2 đêm: 11111
hoặc:

0 đêm:01001
1 đêm: 11111
hoặc:

0 đêm:01000
1 đêm: 11100
2 đêm: 11110
3 đêm: 11111
Tất cả các trạng thái ban đầu này đều có ít nhất một con bò bị nhiễm bệnh.

ĐẦU VÀO MẪU:
6
011101
ĐẦU RA MẪU:
4
Trạng thái ban đầu và số đêm duy nhất có thể dẫn đến trạng thái cuối cùng này là nếu không có đêm nào trôi qua và mỗi con trong số bốn con bò bị nhiễm bệnh ở nhóm đầu vào đều bắt đầu bị bệnh.

ĐIỂM:

* Đầu vào 3-7: N<1000
* Đầu vào 8-12: Không có ràng buộc bổ sung.

Tôi cần giải quyết câu hỏi này bằng C++.

Những gì tôi đã thử:

Mình đã thử nghĩ ra giải pháp nhưng giờ nghĩ lại chỉ biết làm ngược lại câu hỏi này 🙁 Mình không nghĩ ra được giải pháp. Hãy giúp mình với! Mình là loại người cần phải làm vậy giải quyết một câu hỏi khi tôi nhìn thấy nó. Tôi chỉ là người mới bắt đầu, vì vậy hãy giúp đỡ!

Giải pháp 1

Nhìn thấy Làm cách nào để giải quyết vấn đề này cho tất cả các ràng buộc[^] cho các giải pháp được đề xuất.
https://www.codeproject.com/script/Answers/Post.aspx?aid=5374347#
[edit]

Trích dẫn:

Tôi cần giải quyết câu hỏi này bằng C++.

Việc lựa chọn ngôn ngữ không quan trọng. Chìa khóa cho những vấn đề như vậy là tìm ra các bước hợp lý mà bạn cần để tìm ra giải pháp.
[/edit]

コメント

タイトルとURLをコピーしました