題目大意:有二個水壺,對水壺有三種操作,1)fill(i),將i水壺的水填滿,2)drop(i),將水壺i中的水全部倒掉,3)pour(i,j)將水壺i中的水倒到水壺j中,若水壺 j 滿了,則 i 剩下的就不倒了,問進行多少步操作,並且怎麼操作,輸出操作的步驟,兩個水壺中的水可以達到c這個水量。如果不可能則輸出impossible。初始時兩個水壺是空的,沒有水。
然後這題就順理成章地用廣搜了。
**如下
#include
#include
#include
int a,b,c;
struct node
;struct node q[100050];
int wh[10005];
int num0[10005],num;
short flag[105][105];
int head,tail,k;
int bfs()
}else if(nowa=a-nowa)
}else if (nowb=1; i--)
if (q[num0[i]].d==1)
else if(q[num0[i]].d==2)
else if(q[num0[i]].d==3)
else if(q[num0[i]].d1==2)}}
void main()
else
}
POJ3414解題報告
include includeconst int maxn 110 int vis maxn maxn 標記狀態是否入隊過 int a,b,c 容器大小 int step 最終的步數 int flag 紀錄是否能夠成功 狀態紀錄 struct statusq maxn maxn int id max...
poj解題報告 1328
不得不說,這題是讓我飽受折磨,畢竟第一次做貪心演算法,而且wa了好多次,幸好有學長的幫助,最終找到了問題所在,是在快排上是問題,double高位不可向int低位轉換,由於一開始強制轉換導致雖然樣例和其他的測試資料過了,但還是wa,現在改完了就對了,附上ac ps 這題通過率是22 真心不簡單 如下 ...
poj解題報告 2586
這題我是用的貪心演算法,其實不用也可以,列舉也能解決,因為情況不多。因為是每連續5個月必有虧損,而一年只有1 5,2 6,3 7,4 8 8 12共8種情況。現在設盈餘為s,虧損為d,可列出以下幾種情況。ssssdssssdss 4ssssddsssddss 3s 2d ssdddssdddss 2...