萌新求助

P1605 迷宫

@[柳暗花明乐乐](/space/show?uid=200542) 思路正确,但是实现不行。从你的主函数开始改。 - ```scanf("%d%d",zx[i],zy[i]);```是错误写法,应该写成```scanf("%d%d",&zx[i],&zy[i]);```或者```scanf("%d%d",zx+i,zy+i);``` - ```memset(a,1,sizeof(a));```的位置不对。你把它放在输入的for后面那不是正好覆盖了嘛,要写在for的前面。 - 只要不触边,就可以往四个方向走。但你这样写只能走一个方向。例如,你第一个if应该改为 ```cpp if(x==1&&y==1){ if(a[x][y+1]==1) dfs(x,y+1); if(a[x+1][y]==1) dfs(x+1,y); } ``` 以下同理。 - 你的代码只判断了向0的越界,没有判断超过n(或m)的越界。例如第二个if中```if(a[x][y+1]==1) dfs(x,y+1);```应该改为```if(y<m&&a[x][y+1]==1) dfs(x,y+1);```其余同理 (
by 0nullptr @ 2019-08-22 18:45:00


@[zs__std](/space/show?uid=82672) 谢谢大佬orz
by Stick_With_Mars @ 2019-08-22 19:18:48


~~想知道为什么加了万能还要加 vector~~
by _emm_ @ 2019-09-07 16:07:19


|