ACM搜索 POJ 3414 BFS解题报告

ACM搜索 POJ 3414 BFS解题报告

ID:38160915

大小:26.50 KB

页数:4页

时间:2019-06-06

ACM搜索 POJ 3414 BFS解题报告_第1页
ACM搜索 POJ 3414 BFS解题报告_第2页
ACM搜索 POJ 3414 BFS解题报告_第3页
ACM搜索 POJ 3414 BFS解题报告_第4页
资源描述:

《ACM搜索 POJ 3414 BFS解题报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、/*题目要求:两个桶的体积分别为A和B,要求用这个两个桶装出C体积的水,如果可以的话就输出装法,不可以的话就输出impossibie. A,B<=100,并且是要求输出最少的步数和方法。SampleInput354SampleOutput6FILL(2)POUR(2,1)DROP(1)POUR(2,1)FILL(2)POUR(2,1)简单运用BFS的典型例题*/#include#include#includeusingnamespacestd;classNode{public:inta;intb;str

2、ingfunction;//保存路径六种选择用六个数字表示Node(){};Node(inta,intb,stringfunction){this->a=a;this->b=b;this->function=function;}};intmain(){queueq;inta,b,c;cin>>a>>b>>c;Nodestart(0,0,"");Nodefinal;//最终节点boolflag[101][101];//通过ab判断是否出现过此状态memset(flag,true,sizeof(flag));//如果用boolflag[101]

3、[101]=true;下面修改数组元素值会发生错误booljudge=false;q.push(start);while(!q.empty())//BFS{start=q.front();q.pop();for(inti=0;i<6;i++){switch(i){case0:{Nodetemp(0,start.b,start.function+'0');if(temp.a==c

4、

5、temp.b==c){judge=true;final=temp;}if(flag[temp.a][temp.b]==true){flag[temp.a][temp.b]=f

6、alse;q.push(temp);}break;}case1:{Nodetemp(start.a,0,start.function+'1');if(temp.a==c

7、

8、temp.b==c){judge=true;final=temp;}if(flag[temp.a][temp.b]==true){flag[temp.a][temp.b]=false;q.push(temp);}break;}case2:{Nodetemp(a,start.b,start.function+'2');if(temp.a==c

9、

10、temp.b==c){judge=tru

11、e;final=temp;}if(flag[temp.a][temp.b]==true){flag[temp.a][temp.b]=false;q.push(temp);}break;}case3:{Nodetemp(start.a,b,start.function+'3');if(temp.a==c

12、

13、temp.b==c){judge=true;final=temp;}if(flag[temp.a][temp.b]==true){flag[temp.a][temp.b]=false;q.push(temp);}break;}case4:{if(sta

14、rt.a>b-start.b){Nodetemp(start.a-(b-start.b),b,start.function+'4');if(temp.a==c

15、

16、temp.b==c){judge=true;final=temp;}if(flag[temp.a][temp.b]==true){flag[temp.a][temp.b]=false;q.push(temp);}}else{Nodetemp(0,start.a+start.b,start.function+'4');if(temp.a==c

17、

18、temp.b==c){judge=true;fin

19、al=temp;}if(flag[temp.a][temp.b]==true){flag[temp.a][temp.b]=false;q.push(temp);}}break;}case5:{if(start.b>a-start.a){Nodetemp(a,b-(a-start.a),start.function+'5');if(temp.a==c

20、

21、temp.b==c){judge=true;final=temp;}if(flag[temp.a][temp.b]==true){flag[temp.a][temp.b]=false;q.push(tem

22、p);}}else{Nodetemp(start.a+start.b,0,start.func

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。