日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1176: 扫雷

發布時間:2024/9/3 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1176: 扫雷 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1176: 掃雷
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 342 Solved: 144
[Submit][Status][Web Board]
Description

大家都應該玩過掃雷這個游戲吧.就是在一個nm的矩陣中有若干個雷,你需要將他們全部找出來才能獲得勝利.其他格子用數字表示代表這個格子周圍有幾個雷.如果在一個nm的矩陣中我已經告訴你所有雷的位置,你能將這個矩陣補全嘛?

Input

多組測試數據.每組數據的第一行包含兩個正整數n,m(1<=n,m<=100).接下來n行每行有m個不是9就是-1的整數.9代表這個位置有雷,-1代表這個位置是數字.

Output

對于每組測試數據輸出一個n*m的補全后的矩陣.用一個空行分隔兩個矩陣.注意最后一個矩陣后面沒有空行.

Sample Input

2 3
9 -1 9
-1 -1 9
2 4
9 -1 -1 -1
9 9 9 9

Sample Output

939
139

9432
9999

HINT

Source
/*
思路:明確 周圍范圍
我不玩掃雷,所以根據生活經驗我無法確定范圍,所以只能根據樣例來推斷這個范圍
由樣例可以發現一個數字周圍的范圍是以它為中心構成的3x3的正方形

f f f f num f f f f

明確這點就好做了。。
一個數字周圍最多8個雷,每輸入一個數字9就可以確定它周圍非雷數字的值應該+1
*/
AC_code:

#include <stdio.h> int n,m; int a[105][105]; int step_x[]={1,-1,1,1,0,0,-1,-1},step_y[]={0,0,1,-1,1,-1,1,-1}; void update(int x,int y) {a[x][y] = 9;for(int i = 0; i < 8; i++){int xx = x + step_x[i];int yy = y + step_y[i];if(xx>=0&&xx<n&&yy>=0&&yy<m&&a[xx][yy]!=9){a[xx][yy]++;}} } int main() {while(~scanf("%d%d",&n,&m)){for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){a[i][j] = 0;}}int num;for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){scanf("%d",&num);if(num == 9)update(i,j);}}for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){printf("%d",a[i][j]);}puts("");}puts("");}return 0; }

總結

以上是生活随笔為你收集整理的1176: 扫雷的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。