uva 10603
#include
#include
#include
using
namespace std;
struct node
friend
bool
operator
<
(node a, node b)};
int a, b, c, d;
int vis[
205]
[205];
// b杯和c杯的容量表示一種狀態
int record[
205]
;// 儲存至少乙個杯子有i公升水時的最少倒水量
int capacity[3]
;bool
judge
(int i,
int j, node u)
void
bfs(
)for
(int i =
0; i <
3; i++
)for
(int j =
0; j <
3; j++)}
}}if(record[d]==-
1)}}
cout << record[d]
<<
" "<< d << endl;
}int
main()
return0;
}
#include
#include
using
namespace std;
struct node };
int record[
1005];
// 有乙個杯子由i公升水所需要的最少操作次數
int vis[
1005][
1005];
// 中杯餘量和小杯餘量表示乙個狀態
int arr[3]
;// 三個杯子的容量
int a, b, c, x;
bool
judge
(int i,
int j, node u)
void
bfs()}
}}if(record[x]!=-
1) cout << record[x]
<< endl;
else cout <<
"no"
<< endl;
}int
main()
return0;
}
UVa 10603 Fill (BFS 優先佇列)
題意 給定4個數,a,b,c,d,分別代表空杯子容積為a,b,乙個盛滿水的杯子容積為c,讓你不斷倒水,找乙個dd,是不是存在某個時刻,某個杯子裡的水dd,和d相同,或者無限接近。讓求最少的倒水量和dd 可能和d相同 解析 用bfs列舉所有的狀態,就是把i裡面的水倒到j裡面,在這裡學到了用node的優...
UVA1203Argus(優先佇列)
題目 uva1203argus 優先佇列 題目大意 給你多個專案,每個專案有它發生的週期和對應的q num值。現在要求給出前k個專案,時間優先,同一時刻發生的先輸出q num值小的。解題思路 先將這幾個專案排下順序,一開始這些專案的發生時間就是週期,按照時間優先和同一時刻的q num優先的原則將這個...
UVa 10603 BFS 優先佇列
題目鏈結 解題報告 lrj紫書中路徑尋找問題的例題。大部分細節書中都有說明,不再贅述。說一點自己的感想。書裡面說演算法的正確性不是顯然的,可是我覺得應該是顯然的吧?每次找到佇列裡dist值最小的狀態,以它來更新ans值,並且拓展其他狀態。假如當前我們找到了乙個恰好有某個瓶子裡的水為d公升的狀態p,現...