【題目描述】
掃雷遊戲是一款十分經典的單機小遊戲。在n行m列的雷區中有一些格仔含有地雷(稱之為地雷格),其他格仔不含地雷(稱之為非地雷格)。玩家翻開乙個非地雷格時,該格將會出現乙個數字——提示周圍格仔中有多少個是地雷格。遊戲的目標是在不翻出任何地雷格的條件下,找出所有的非地雷格。
現在給出nn行mm列的雷區中的地雷分布,要求計算出每個非地雷格周圍的地雷格數。
注:乙個格仔的周圍格仔包括其上、下、左、右、左上、右上、左下、右下八個方向上與之直接相鄰的格仔。
【輸入】
第一行是用乙個空格隔開的兩個整數nn和mm,分別表示雷區的行數和列數。
接下來nn行,每行mm個字元,描述了雷區中的地雷分布情況。字元』*』表示相應格仔是地雷格,字元』?』表示相應格仔是非地雷格。相鄰字元之間無分隔符。
【輸出】
包含nn行,每行mm個字元,描述整個雷區。用』*』表示地雷格,用周圍的地雷個數表示非地雷格。相鄰字元之間無分隔符。
【輸入樣例】
3 3??
?????
【輸出樣例】
10221
11【提示】
樣例測試點#2:
輸入:2 3
?*???
輸出:21
*21對於 100%的資料, 1≤n≤100,1≤m≤100。
ac碼如下:
#include
using
namespace std;
#define n 105
char c[n]
[n];
intsearch
(int x,
int y)
intmain()
cout <
< endl;
}}
15年普及組第一題解題思路如下:
15NOIP普及組 掃雷遊戲
本題的難點,1 是字元及字串的出入輸出 2 四個方向的遍歷 includeusing namespace std intn,m char a 105 105 int dx 8 依次對應上 下 左 右 左上 右上 左下 右下八個方向 的x座標變化差值 int dy 8 依次對應上 下 左 右 左上 右...
數字遊戲 NOIp普及組 2003 普及 提高
數字遊戲 題目描述 丁丁最近沉迷於乙個數字遊戲之中。這個遊戲看似簡單,但丁丁在研究了許多天之後卻發覺原來在簡單的規則下想要贏得這個遊戲並不那麼容易。遊戲是這樣的,在你面前有一圈整數 一共nn個 你要按順序將其分為mm個部分,各部分內的數字相加,相加所得的mm個結果對1010取模後再相乘,最終得到乙個...
NOIP 2002 普及組 數字遊戲
題目鏈結 題目分析 這道題是一道區間dp題,跟能量項鍊還有石子合併差不多,我們用f i j l 表示處理i到j這一區間分為l段所能得到的最大值或是最小值。具體看 程式 include include include include include using namespace std int n,...