这是我dfs的其中一部分,另外还有3个与之类似的代码,只是方向改了。求大佬看看哪里错了
void dfs(int h,int z){
if(h==m&&z==m){
minn=min(minn,coin);
return;
}
//往右一格
if(b[h][z+1]==now&&f[h][z+1]==0){
f[h][z+1]==1;
dfs(h,z+1);
f[h][z+1]==0;
}else if(b[h][z+1]!=now&&b[h][z+1]!=0&&f[h][z+1]==0){
coin+=1;
f[h][z+1]==1;
dfs(h,z+1);
f[h][z+1]==0;
coin-=1;
}else if(b[h][z+1]==0){
//喷黄漆
f[h][z+1]=2;
coin+=2;
if(f[h][z+1]!=2){
coin++;
dfs(h,z+1);
coin--;
}else{
dfs(h,z+1);
}
f[h][z+1]=0;
coin-=2;
//喷红漆
f[h][z+1]=1;
coin+=2;
if(f[h][z+1]!=1){
coin++;
dfs(h,z+1);
coin--;
}else{
dfs(h,z+1);
}
f[h][z+1]=0;
coin-=2;
}