我需要此問題的幫助POUR1。我認爲 它可以用暴力方法來解決,但我讀到它是一個圖形問題(BFS)。我解決了像ABCPATH,LABYR1,PT07Y,PT07Z,BITMAP,...
問題,但我不知道如何以BFS方式處理POUR1。對SPOJ POUR1的建議?
有人可以給我一些建議嗎?
問題陳述:
給定兩個容器,其中一個可容納一升的水,而另一個 - 的水溶液B升,確定的,以獲得在一個水恰好Ç升所需的步驟數的船隻。
在開始時,兩艘船都是空的。以下操作被計數爲「步驟」:
- 排空的容器中,
- 填充的容器中,
- 澆注水從一個容器到另一個,而不溢出,直至容器中的一個或者是全或空。
輸入:
整數t,1 < =噸< = 100,表示測試用例的數量,接着爲T輸入數據集合,每個由三個正整數A,B, c,不大於40000,分成幾行。
輸出:
對於每一組輸入數據,輸出的最小數量的,得到C升所需的步驟,或者爲-1,如果這是不可能的。
實施例:
樣品輸入:
2
5
2
3
2
3
4
示例輸出:
2
-1
注意,每當一個容器是部分滿,另一個是完全空的或完全充滿,從而降低狀態的總數量。還要注意,對於這個問題,對於容器大小爲'a'和'b'的BFS將花費時間'O(a + b)',但對於這個問題,應該可能使用'O(log a + log b)'解決方案,使用模塊化逆 –