萌新提问关于判断出界的问题(一种可以,另一种不行)

P1162 填涂颜色

_xing_ @ 2021-05-03 10:16:25

inline void dfs(int p,int q){

int i;

if(p<0||p>n+1||q<0||q>n+1||a[p][q]!=0)

return;

a[p][q]=1;

for(i=0;i<4;i++) dfs(p+fx[i][0],q+fx[i][1]); }

如果是这一种判断就可以递归下去,但如果不行,返回后又重新递归为什么可以?

if(xx >= 1 && xx <= n && yy >= 1 && yy <= n && a[xx][yy] == 0)

dfs(xx,yy);

如果我在递归之前判断它能否递归就不可以,这是为什么?


by 逸之为一 @ 2021-06-21 21:40:07

???


by 逸之为一 @ 2021-06-21 21:41:36

能把完整代码给我康康吗


|