零分求助
查看原帖
零分求助
677152
违规用户名^3Zj=Oha楼主2023/8/2 17:21
#include<bits/stdc++.h>
using namespace std;
struct node{
	int x,y,step;
	node() {}
	node(int _x,int _y,int _step): x(_x),y(_y),step(_step){}
};
int m[4][4],dx[4]={0,0,-1,1},dy[4]={1,-1,0,0};
int n[4][4]={0,0,0,0,0,1,2,3,0,8,0,4,0,7,6,5},xx,yy;
bool vis[4][4];
char s[20];
void print(){
	for(int i=1;i<=3;i++){
		for(int j=1;j<=3;j++) cout<<m[i][j]<<" ";
		cout<<endl;
	}
}
void bfs(int x,int y,int a[4][4],int step){
	queue<node> q;
	q.push({x,y,step});
	print();
	cout<<endl;
	while(!q.empty()){
		node p=q.front();
		q.pop();
		for(int i=0;i<4;i++){
			int nx=dx[i]+p.x,ny=dy[i]+p.y;
			if(nx>=1&&nx<=3&&ny>=1&&ny<=3&&vis[nx][ny]==0){
				int t=a[nx][ny];
				a[nx][ny]=a[x][y];
				a[x][y]=t;
				vis[nx][ny]=1;
				bfs(nx,ny,a,p.step+1);
				t=a[nx][ny];
				vis[nx][ny]=0;
				a[nx][ny]=a[x][y];
				a[x][y]=t;
			}
		}
	}
}
main(){
	cin>>s;
	m[1][1]=s[0]-'0',m[1][2]=s[1]-'0',m[1][3]=s[2]-'0';
	m[2][1]=s[3]-'0',m[2][2]=s[4]-'0',m[2][3]=s[5]-'0';
	m[3][1]=s[6]-'0',m[3][2]=s[7]-'0',m[3][3]=s[8]-'0';
	for(int i=1;i<=3;i++){
		for(int j=1;j<=3;j++){
			if(m[i][j]==0){
				xx=i,yy=j;
				break;
			}
		}
	}
	bfs(xx,yy,m,0);
	return 0;
}

零分!!!!!!啊!!!!!!!!!114514!!!!!!!!!

2023/8/2 17:21
加载中...