悬赏关注(出现的WA)

P1506 拯救oibh总部

@[M15388049303](/user/1078808) `if(tx>=0&&tx<x&&ty>=0&&ty<y&&a[tx][ty]==0)`你的 `a` 数组不是 `char` 类型的吗?没判断重复路线,要加上 `!b[tx][ty]`
by danlao @ 2024-03-03 14:19:34


@[M15388049303](/user/1078808) 或者像我这样写 ```cpp #include <iostream> using namespace std; #define FOR(i,j,n,k) for(int i=(j);i<=(n);i+=k) #define ROR(i,j,n,k) for(int i=(j);i>=(n);i-=k) const int upint=1e6+10; const double downdouble=1e-6; int n,m,cnt; int dx[5]={0,1,0,-1,0},dy[5]={0,0,1,0,-1}; char map[510][510]; void dfs(int x,int y){ map[x][y]='1'; for(int i=1;i<=4;i++){ int tx=x+dx[i],ty=y+dy[i]; if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&map[tx][ty]=='0') dfs(tx,ty); } } int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>map[i][j]; for(int i=1;i<=n;i++){ if(map[i][1]=='0') dfs(i,1); if(map[i][m]=='0') dfs(i,m); } for(int i=1;i<=m;i++){ if(map[1][i]=='0') dfs(1,i); if(map[n][i]=='0') dfs(n,i); } for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(map[i][j]=='0') cnt++; printf("%d",cnt); return 0; } ```
by danlao @ 2024-03-03 14:20:49


过了 本贴完 关注了
by M15388049303 @ 2024-03-03 14:22:14


@[M15388049303](/user/1078808) 为啥我看不了你的评测记录??
by danlao @ 2024-03-03 14:23:52


|