编译报错

P1379 八数码难题

你push的时候a5,a6中间加了个u
by OneSheeep @ 2023-08-12 11:24:16


@[cokt335](/user/873417) ```log test.cpp:20:52: error: no viable conversion from 'node' to 'int' 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}); ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. ```
by Argvchs @ 2023-08-12 11:25:18


改完应该是这样的 还有,你MLE了 ```cpp #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.a6,u.a7,u.a8,u.a9,u.dis+1}); q.push((node){u.a4,u.a2,u.a3,u.a1,u.a5,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.a6,u.a7,u.a8,u.a9,u.dis+1}); q.push((node){u.a2,u.a1,u.a3,u.a4,u.a5,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.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.a3,u.a7,u.a8,u.a9,u.dis+1}); q.push((node){u.a1,u.a3,u.a2,u.a4,u.a5,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.a6,u.a7,u.a8,u.a9,u.dis+1}); q.push((node){u.a1,u.a2,u.a3,u.a5,u.a4,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.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.a6,u.a7,u.a8,u.a9,u.dis+1}); q.push((node){u.a1,u.a2,u.a3,u.a5,u.a4,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.a5,u.a7,u.a8,u.a9,u.dis+1}); q.push((node){u.a1,u.a2,u.a3,u.a4,u.a8,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.a3,u.a7,u.a8,u.a9,u.dis+1}); q.push((node){u.a1,u.a2,u.a3,u.a4,u.a6,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.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.a6,u.a4,u.a8,u.a9,u.dis+1}); q.push((node){u.a1,u.a2,u.a3,u.a4,u.a5,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.a6,u.a7,u.a5,u.a9,u.dis+1}); q.push((node){u.a1,u.a2,u.a3,u.a4,u.a5,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.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.a9,u.a7,u.a8,u.a6,u.dis+1}); q.push((node){u.a1,u.a2,u.a3,u.a4,u.a5,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; } ```
by OneSheeep @ 2023-08-12 11:26:51


@[OneSheeep](/user/501059) @[Argvchs](/user/533270) 感谢,我开了很多遍都没看到
by Istruggle @ 2023-08-12 14:39:51


|