广搜的时间复杂度问题

P1443 马的遍历

开个o2试试?
by tim1103 @ 2020-04-16 21:54:27


@[库里Curry](/user/238000) 检查一下有没有死循环
by 天命之路 @ 2020-04-16 21:54:53


@[库里Curry](/user/238000) 按照理论我的就过了呀: ```cpp #include<iostream> #include<queue> using namespace std; int ans[410][410],ax[9]={0,-2,-1,1,2,2,1,-1,-2},ay[9]={0,-1,-2,-2,-1,1,2,2,1}; struct dian { int xx,yy; }; dian fuzhi(int x,int y) { dian t; t.xx=x; t.yy=y; return t; } queue<dian> q; int main() { ios::sync_with_stdio(false); int x,y,n,m; cin>>n>>m>>x>>y; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { ans[i][j]=-1; } } q.push(fuzhi(x,y)); ans[x][y]=0; while(!q.empty()) { dian s=q.front(); q.pop(); for(int i=1;i<=8;i++) { if(ans[s.xx+ax[i]][s.yy+ay[i]]==-1&&s.xx+ax[i]>=1&&s.xx+ax[i]<=n&&s.yy+ay[i]>=1&&s.yy+ay[i]<=m) { ans[s.xx+ax[i]][s.yy+ay[i]]=ans[s.xx][s.yy]+1; q.push(fuzhi(s.xx+ax[i],s.yy+ay[i])); } } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { int t=4,x=ans[i][j]; cout<<x; if(x<0) { t--; } while(x>=10) { t--; x/=10; } for(int i=1;i<=t;i++) { cout<<" "; } } cout<<endl; } return 0; } ```
by liqingyang @ 2020-04-16 21:55:12


int bfs 没有返回值?
by 天命之路 @ 2020-04-16 21:56:18


没有返回值貌似会GG的
by xhQYm @ 2020-04-16 21:56:56


@[liqingyang](/user/272088) STL比普通队列慢那么多都过了!!
by 天命之路 @ 2020-04-16 21:58:19


@[天命之路](/user/226435) 嗯嗯,因为我懒~
by liqingyang @ 2020-04-16 21:58:46


@[库里Curry](/user/238000) ```int main(){landingyu AK IOI}```这句话好评!
by liqingyang @ 2020-04-16 22:01:06


@[liqingyang](/user/272088) 那楼主的代码肯定存在问题了(要不然怎么会T )
by 天命之路 @ 2020-04-16 22:01:23


@[liqingyang](/user/272088) 强大的 define
by 天命之路 @ 2020-04-16 22:02:42


| 下一页