编译报错
查看原帖
编译报错
873417
Istruggle楼主2023/8/12 11:21

这么写为什么编译报错,怎么解决

#include<bits/stdc++.h>
using namespace std;
int ma[5][5];
struct node
{
	int a1,a2,a3,a4,a5,a6,a7,a8,a9,dis;
};
queue<node> q;
int bfs()
{
    while(!q.empty())
    {
    	node u=q.front();
    	q.pop();
    	if(u.a1==1&&u.a2==2&&u.a3==3&&u.a4==8&&u.a5==0&&u.a6==4&&u.a7==7&&u.a8==6&&u.a9==5)
		{
			return u.dis;
		 } 
    	if(u.a1==0){
    		q.push((node){u.a2,u.a1,u.a3,u.a4,u.a5,u,u.a6,u.a7,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a4,u.a2,u.a3,u.a1,u.a5,u,u.a6,u.a7,u.a8,u.a9,u.dis+1});
		}
		if(u.a2==0){
    		q.push((node){u.a1,u.a3,u.a2,u.a4,u.a5,u,u.a6,u.a7,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a2,u.a1,u.a3,u.a4,u.a5,u,u.a6,u.a7,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a5,u.a3,u.a4,u.a2,u,u.a6,u.a7,u.a8,u.a9,u.dis+1});
		}
		if(u.a3==0){
    		q.push((node){u.a1,u.a2,u.a6,u.a4,u.a5,u,u.a3,u.a7,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a3,u.a2,u.a4,u.a5,u,u.a6,u.a7,u.a8,u.a9,u.dis+1});
		}
		if(u.a4==0){
    		q.push((node){u.a4,u.a2,u.a3,u.a1,u.a5,u,u.a6,u.a7,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a2,u.a3,u.a5,u.a4,u,u.a6,u.a7,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a2,u.a3,u.a7,u.a5,u,u.a6,u.a4,u.a8,u.a9,u.dis+1});
		}
		if(u.a5==0){
    		q.push((node){u.a1,u.a5,u.a3,u.a4,u.a2,u,u.a6,u.a7,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a2,u.a3,u.a5,u.a4,u,u.a6,u.a7,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a2,u.a3,u.a4,u.a6,u,u.a5,u.a7,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a2,u.a3,u.a4,u.a8,u,u.a6,u.a7,u.a5,u.a9,u.dis+1});
		}
		if(u.a6==0){
    		q.push((node){u.a1,u.a2,u.a6,u.a4,u.a5,u,u.a3,u.a7,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a2,u.a3,u.a4,u.a6,u,u.a5,u.a7,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a2,u.a3,u.a4,u.a5,u,u.a9,u.a7,u.a8,u.a6,u.dis+1});
		}
		if(u.a7==0){
    		q.push((node){u.a1,u.a2,u.a3,u.a7,u.a5,u,u.a6,u.a4,u.a8,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a2,u.a3,u.a4,u.a5,u,u.a6,u.a8,u.a7,u.a9,u.dis+1});
    	}
    	if(u.a8==0){
    		q.push((node){u.a1,u.a2,u.a3,u.a4,u.a8,u,u.a6,u.a7,u.a5,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a2,u.a3,u.a4,u.a5,u,u.a6,u.a8,u.a7,u.a9,u.dis+1});
    		q.push((node){u.a1,u.a2,u.a3,u.a4,u.a5,u,u.a6,u.a7,u.a9,u.a8,u.dis+1});
    	}
    	if(u.a9==0){
    		q.push((node){u.a1,u.a2,u.a3,u.a4,u.a5,u,u.a9,u.a7,u.a8,u.a6,u.dis+1});
    		q.push((node){u.a1,u.a2,u.a3,u.a4,u.a5,u,u.a6,u.a7,u.a9,u.a8,u.dis+1});
    	}
	}
}
int main()
{
	for(int i = 1;i<=3;i++)
	for(int j=1;j<=3;j++)
	{
		char tmp;
		cin>>tmp;
		ma[i][j]=tmp-'0';
		cout<<ma[i][j];
	}	
	q.push((node){ma[1][1],ma[1][2],ma[1][3],ma[2][1],ma[2][2],ma[2][3],ma[3][1],ma[3][2],ma[3][3],0});
	int ans=bfs();
	printf("%d",ans);
	return 0;
}
2023/8/12 11:21
加载中...