P2670 [NOIP2015 普及组] 扫雷游戏
直接模拟即可。
const int N=110;
char g[N][N];
int n,m;
bool check(int x,int y)
{
return x>=0 && x<n && y>=0 && y<m;
}
int count(int x,int y)
{
int res=0;
for(int i=-1;i<=1;i++)
for(int j=-1;j<=1;j++)
{
int a=x+i,b=y+j;
if(check(a,b) && g[a][b] == '*')
res++;
}
return res;
}
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++) scanf("%s",g[i]);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
if(g[i][j] == '*') continue;
int cnt=count(i,j);
g[i][j]='0'+cnt;
}
for(int i=0;i<n;i++)
puts(g[i]);
//system("pause");
return 0;
}