getchar出问题了
查看原帖
getchar出问题了
564694
_5t0_0r2_楼主2022/8/12 09:38

我调试发现用getchar啥都没输出

#include<bits/stdc++.h>
using namespace std;
const int MOD = 998244353;
char G[505][505];
bool vis[505][505];
int S,n,m,ans = 1,cnt,lastx,lasty;
void dfs(int x,int y){
    
//    for(int i = 1;i <= n;i++){
 //       for(int j = 1;j <= m;j++){
 ///           cout << vis[i][j];   
 //       }
 //       printf("\n");
 //   }
    //printf("\n");
	ans+= cnt;
    ans++;
	ans %= MOD;
	if(x == lastx && y == lasty){
        
		return;
	}
	for(register int j = y + 1;j <= n;j++)
	    if(!vis[x][j])
	        dfs(x,j);
	for(register int i = x + 1;i <= n;i++)
	    for(register int j = 1;j <= m;j++)
	        if(!vis[i][j])
	            dfs(i,j);
}
int main(){
	scanf("%d%d%d", &S, &n, &m);
	for(int i = 1;i <= n;i++){
		for(int j = 1;j <= m;j++){
            G[i][j] = getchar();
		    if(G[i][j] == '*'){
		        cnt++;
		        vis[i][j] = true;
		    }
		    else{
		        lastx = i;
		        lasty = j;
		    }
		}
	}
    //调试
    for(int i = 1;i <= n;i++){
        for(int j = 1;j <= m;j++)
            putchar(G[i][j]);
        putchar('\n');
    }
	ans += cnt;
	for(register int i = 1;i <= n;i++){
		for(register int j = 1;j <= m;j++){
		    if(!vis[i][j]){
                vis[i][j] = true;
			    dfs(i,j);
			    vis[i][j] = false;
		    }
		}
	}
	printf("%d",ans % MOD);
	return 0;
}
2022/8/12 09:38
加载中...