P2670 [マインスイーパ]

ああ~~質問に直面しています

ラララ~~~

この問題データは、徹底的なので、決定的最大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!

 

おすすめ

転載: www.cnblogs.com/hahaha2124652975/p/11123084.html