ラララ~~~
この問題データは、徹底的なので、決定的最大100 * 100大ではありませんが、
実際には、これは読みながら、私がやりたいことですが、読書が問題です。
主なアイデアは、つまり、爆弾限り、徹底的な一面を読んだ後、周りの8プラス再び円を置きます
ACコード:
1の#include < 設定 > 2の#include <地図> 3の#include <リスト> 4の#include <キュー> 5の#include <積層体> 6の#include < ストリング > 7の#include <cmath> 8の#include <ctimeの> 9#含む<ベクトル> 10の#include <ビットセット> 11の#include <メモリ> 12の#include <ユーティリティ> 13の#include <cstdioを> 14の#include <sstream提供さ> 15の#include <iostreamの> 16の#include <cstdlib> 17の#include <CStringの> 18#include <アルゴリズム> // TE複数のヘッダ 19。 使用した 名前空間STD; 20である INT N-、M; 21である INT MM [ 105 ] [ 105 ]; 22は、 チャー A [ 105 ] [ 105 ]; 23は、 INT (メイン){ 24 >> N-CINのM、 25 のために(INT I = 1 ; I <= N; I ++は){ 26である scanfの(" %のS "、&[I]); // 私は、以前の良い複合体を読みたい,,結果。。。 27 } 28 用(INT I = 1 ; I <= N - 、Iは++){ // 網羅 29 のために(INT J = 0 ; J <M、J ++ ){ 30 IF([I] [J] == ' * ') { // 爆弾ケースで 31である - MM [I] [J] = 100000000 ; //は実際に点8までインクリメント 32 [1-ミリメートル1。 [J =] 1。 ; ++] // ストッププラス8 33は MM [I- 1 ] [J] ++ ; 34である MM [I- 1 ] [+ J1 ] ++ ; 35 mmの[I]、[J- 1 ] ++ ; 36 mmの[I]、[J + 1 ] ++ ; 37 ミリメートル[iが+ 1 ] [J- 1 ] ++ ; 38 ミリメートル[iが+ 1 ] [J] ++ ; 39 MMは[I +は1 [J +] 1 ] ++を、 40 } 41 } 42 } 43 のための(int型 i = 1 ; iが<= N; iが++ ){ 44 用(INT J = 0 ; J <M、J ++ ){ 45は、 IF(MM [I] [J] < 0){ // 地雷出力* 46は COUT << " * " ; 47 } 48 他{ 49 COUT MM << [I]、[J]; // 周辺出力のない数 50 } 51である } 52で COUT << ENDL; 53である } 54で 戻り 0 ; 55 }
最終的な出力は、三眼鏡式のように要約することができる場合、実際には、:COUT <<(MM [I] [J] <0 '*':?M [I] [J])、理解するのが困難であってはなりません
最後に、私はあなたのすべてを望むAVを!!!AK!!!