NOIP2015 扫雷游戏
#include<bits/stdc++.h> using namespace std; char c[110][110]; int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>c[i][j]; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) if(c[i][j]=='*')cout<<'*'; else{ int k=0; if(c[i-1][j]=='*')k++; if(c[i+1][j]=='*')k++; if(c[i][j-1]=='*')k++; if(c[i][j+1]=='*')k++; if(c[i+1][j+1]=='*')k++; if(c[i+1][j-1]=='*')k++; if(c[i-1][j+1]=='*')k++; if(c[i-1][j-1]=='*')k++; cout<<k; } cout<<endl; } return 0; }
#include<bits/stdc++.h> using namespace std; char c[110][110]; int CNT(int x,int y){ int X=0; for(int i=x-1;i<=x+1;i++) for(int j=y-1;j<=y+1;j++) if(c[i][j]=='*')X++; return X; } int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)scanf("%s",c[i]+1); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) if(c[i][j]=='?')printf("%d",CNT(i,j)); else putchar('*'); puts(""); } return 0; }
#include<bits/stdc++.h> using namespace std; char c[110][110]; int x[110][110]; int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)scanf("%s",c[i]+1); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(c[i][j]=='?') x[i][j]=(int)(c[i+1][j]=='*')+(c[i-1][j]=='*')+(c[i][j+1]=='*')+(c[i][j-1]=='*') +(c[i+1][j+1]=='*')+(c[i+1][j-1]=='*')+(c[i-1][j+1]=='*')+(c[i-1][j-1]=='*'); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) if(c[i][j]=='?')printf("%d",x[i][j]); else putchar('*'); puts(""); } return 0; }