Cho một tập hợp các công thức như thế này:
bacb
bcab
cbba
abbc
Đưa ra thuật toán tìm số kết quả duy nhất bạn có thể nhận được khi mỗi biến được thay thế bằng "0" hoặc "1" trong mỗi công thức.
Có (k!)^2
các công thức, mỗi công thức có 2k-1
các biến và k^2
thuật ngữ. Thể hiện sự không triệu chứng của bạn về k
.
Thuật toán nhanh nhất chiến thắng. Trong trường hợp hòa, giải pháp sử dụng bộ nhớ tiệm cận thấp hơn sẽ thắng. Nếu đó vẫn là hòa, bài đầu tiên sẽ thắng.
Đối với ví dụ trên, có thể thu được các kết quả sau bằng cách thay thế các biến:
1110, 0110, 1001, 0100, 1000, 0000, 0010, 1101, 1111, 0001, 1011, 0111
Vì vậy, câu trả lời đúng là 12. Trong số những người khác, 1010
không thể được thực hiện bằng cách sử dụng các công thức trên.
Tôi đã thực hiện thêm ba trường hợp thử nghiệm, với các giải pháp tương ứng là 230 , 12076 và 1446672 .
a
, b
... là một biến ? Và chúng ta luôn luôn chỉ có một số lượng biến không đồng đều? Không quan trọng trình tự các biến là bao lâu và trên bao nhiêu công thức bạn được đưa ra?