样例都没过qwq求助

P2802 回家

~~咦这道题好像就是我说的吃鼠标回血的那道来着~~ 以下是改错经过~~Ice啊Ice我建议你和我一样学会加输出语句来找错~~: 加了句`cout<<x<<" "<<y<<' '<<step<<' '`<<tili<<endl;发现第一次“1(x) 1(y) 0(step) 6(tili)”之后(除了-1)就没有输出了,说明还没达到下一个递归 还有我仔细一看: 上面: ```cpp const int dx[]={0,0,1,-1}; const int dy[]={1,-1,0,0}; ``` 到了下面循环的时候: ```cpp for(int i=1;i<=4;i++){ int tx=x+dx[i],ty=y+dy[i]; dfs(tx,ty,step+1,tili-1); } ``` 不合理啊…… 改完之后在for里加了句`cout<<tx<< ""<<ty<<endl;`之后并未输出,说明连for也没执行…… 然后改了下判断: ```cpp if(tili<=1||step>ans||Map[x][y]==0||step>=a[x][y][tili]){ cout<<"return"<<endl; return; } ``` 发现直接回了个retrun,啥都没干 真凶:`Map[x][y]==0` 上面全局变量默认为0而你这直接判断肯定直接返回啊 ~~代码懒得改你自己再将就着改吧,实在不行我再找找~~
by Anoif @ 2023-11-19 20:53:28


@[Anoif](/user/584596) 啊对就因为你说了我才去做了。 但我的Map不是用来输入的吗……
by Ice_rnfmabj @ 2023-11-19 20:57:39


@[Ice_rnfmabj](/user/695943) 那个是用来排障碍的……
by Ice_rnfmabj @ 2023-11-19 21:00:44


@[Ice_rnfmabj](/user/695943) az……你自己看着办喽剩下的我搞不了(光速逃)
by Anoif @ 2023-11-19 21:01:58


@[Ice_rnfmabj](/user/695943) ~~艾玛眼瞎了~~ 嗯……不是Max问题是最后一个判断的`a[x][y][tili]`的问题,你这第一回递归也没赋值,第一回step=0,而a也=0,自然return(确信)
by Anoif @ 2023-11-19 21:14:31


@[Anoif](/user/584596) 啊是的,我原本打算睡觉突然因为这个惊醒起来了 ~~但我一搞还是错的~~
by Ice_rnfmabj @ 2023-11-19 21:31:52


@[Ice_rnfmabj](/user/695943) for(int i=1;i<=4;i++){ int tx=x+dx[i],ty=y+dy[i]; dfs(tx,ty,step+1,tili-1); } 你确定这个地方不应该写0~3吗。
by Edward2019 @ 2023-11-20 10:49:38


@[Edward2019](/user/274347) 额改了但还是不对……
by Ice_rnfmabj @ 2023-11-25 14:37:09


```cpp for(int i=1;i<=4;i++){ int tx=x+dx[i],ty=y+dy[i]; dfs(tx,ty,step+1,tili-1); } ``` ///开0,<4试一下
by profesor @ 2023-11-25 14:53:42


``` memset(book,0x3f,sizeof(book)); dfs(sx,sy,0,6); if(ans<INF)cout<<ans; else cout<<"-1"; ``` ?
by profesor @ 2023-11-25 14:56:33


| 下一页