P2670 扫雷游戏 方法二:
题目传送门
方法一:#include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<string> #include<algorithm> #include<vector> #define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout); using namespace std; const int MAX=1000000; const int N=1e2+10; int n,m,f[N][N]; char a; void input() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>a; if(a=='*') { f[i][j]=MAX; f[i-1][j]++,f[i+1][j]++; //上 下 f[i][j-1]++,f[i][j+1]++; //左 右 f[i-1][j-1]++,f[i-1][j+1]++; //左上 右上 f[i+1][j-1]++,f[i+1][j+1]++; //左下 右下 } } } } int main() { //fre(); input(); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(f[i][j]<MAX) cout<<f[i][j]; else cout<<'*'; } cout<<endl; } return 0; }
#include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include<string> #include<algorithm> #include<vector> #define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout); using namespace std; const int MAX=2147483647; const int N=1e2+5; int n,m,f[N][N]; int dx[8]={-1,1,0,0,-1,-1,1,1}; int dy[8]={0,0,-1,1,-1,1,-1,1}; char s; void input() { cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>s; if(s=='*') f[i][j]=-1;//记录雷 } } } void work() { for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(f[i][j]==-1) continue; for(int k=0;k<8;k++) { int nx=i+dx[k],ny=j+dy[k]; if(f[nx][ny]==-1) f[i][j]++; } } } } void print() { for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(f[i][j]==-1) cout<<'*'; else cout<<f[i][j]; } cout<<endl; } } int main() { //fre(); input(); work(); print(); return 0; }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算