poj 3414(bfs,将每个状态+之前的操作作为一个Node,做bfs)
#include<iostream> #include<queue> #include<cstring> using namespace std; #define maxn 105 int a,b,c; bool visit[maxn][maxn]; struct node{ int a,b,cnt,path[maxn*maxn]; node(int ai,int bi,int cnti){ a = ai; b = bi; cnt = cnti; } }; const char msg[][15] = { "FILL(1)", "FILL(2)", "DROP(1)", "DROP(2)", "POUR(1,2)", "POUR(2,1)" }; typedef node Node; void bfs(){ memset(visit,false,sizeof visit); queue<Node>q; Node f(0,0,0); visit[0][0] = true; q.push(f); while(!q.empty()){ f = q.front();q.pop(); if(f.a==c||f.b==c){ cout<<f.cnt<<endl; for(int i=1;i<=f.cnt;i++){ cout<<msg[f.path[i]]<<endl; } return; } Node v = f; v.cnt++; if(a-f.a>0){ v.a = a; v.b = f.b; if(!visit[v.a][v.b]){ visit[v.a][v.b] = true; v.path[v.cnt]=0; q.push(v); } } if(b-f.b>0){ v.a = f.a; v.b = b; if(!visit[v.a][v.b]){ visit[v.a][v.b] = true; v.path[v.cnt] = 1; q.push(v); } } if(f.a){ v.a = 0; v.b = f.b; if(!visit[v.a][v.b]){ visit[v.a][v.b] = true; v.path[v.cnt] = 2; q.push(v); } } if(f.b){ v.a = f.a; v.b = 0; if(!visit[v.a][v.b]){ visit[v.a][v.b] = true; v.path[v.cnt] = 3; q.push(v); } } if(f.a>0&&f.b+f.a<=b){ v.a = 0; v.b = f.b+f.a; if(!visit[v.a][v.b]){ visit[v.a][v.b] = true; v.path[v.cnt] = 4; q.push(v); } } if(f.a>0&&f.b+f.a>b){ v.a = f.a-(b-f.b); v.b = b; if(!visit[v.a][v.b]){ visit[v.a][v.b] = true; v.path[v.cnt] = 4; q.push(v); } } if(f.b>0&&f.a+f.b<=a){ v.a = f.a+f.b; v.b = 0; if(!visit[v.a][v.b]){ visit[v.a][v.b] = true; v.path[v.cnt] = 5; q.push(v); } } if(f.b>0&&f.a+f.b>a){ v.a = a; v.b = f.b-(a-f.a); if(!visit[v.a][v.b]){ visit[v.a][v.b] = true; v.path[v.cnt] = 5; q.push(v); } } } printf("impossible\n"); } int main(){ scanf("%d%d%d",&a,&b,&c); bfs(); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)