宿迁网站开发,谷歌浏览器网页版入口,东营抖音网络推广公司,做网站go和php用哪个好这又是一道神奇的搜索题。。。只要记录每种状态。。。然后暴力判断这种状态往后一步的情况。。。 广搜出最优解即可。。。 呆码#xff1a; #includeiostream
#includecstdio
#includequeue
#includecstring
using namespace std;int dx[5]{0… 这又是一道神奇的搜索题。。。只要记录每种状态。。。然后暴力判断这种状态往后一步的情况。。。 广搜出最优解即可。。。 呆码 #includeiostream
#includecstdio
#includequeue
#includecstring
using namespace std;int dx[5]{0,0,1,0,-1};
int dy[5]{0,1,0,-1,0};
int dis[100010];
char st[5];
bool use[100010];struct asd{int a[5][5],num;int sum() {int tot0;for(int i1;i4;i)for(int j1;j4;j)tot(a[i][j]4*(i-1)j-1);return tot;}void read() {for(int i1;i4;i){scanf(%s,st);for(int j1;j4;j)a[i][j](st[j-1]1 ? 1 : 0);}numsum();}
}s,t;inline int BFS()
{memset(dis,50,sizeof(dis));queue asd q;q.push(s); dis[s.num]0; use[s.num]1;while(!q.empty()){asd nowq.front(); q.pop();for(int x1;x4;x)for(int y1;y4;y)if(now.a[x][y])for(int i1;i4;i){int xxxdx[i];int yyydy[i];if(xx1 xx4 yy1 yy4 !now.a[xx][yy]){swap(now.a[xx][yy],now.a[x][y]);asd unow; u.numu.sum();swap(now.a[xx][yy],now.a[x][y]);if(!use[u.num]){dis[u.num]dis[now.num]1;if(u.numt.num) return dis[t.num];q.push(u); use[u.num]1;}}}}return dis[t.num];
}int main()
{s.read(); t.read();if(s.numt.num) printf(0\n);else printf(%d\n,BFS());
} 代码 转载于:https://www.cnblogs.com/zzzyc/p/9299741.html