生活随笔
收集整理的這篇文章主要介紹了
Java实现 蓝桥杯VIP 算法提高 扫雷
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
算法提高 掃雷
時(shí)間限制:1.0s 內(nèi)存限制:256.0MB
問(wèn)題描述
掃雷游戲你一定玩過(guò)吧!現(xiàn)在給你若干個(gè)n×m的地雷陣,請(qǐng)你計(jì)算出每個(gè)矩陣中每個(gè)單元格相鄰單元格內(nèi)地雷的個(gè)數(shù),每個(gè)單元格最多有8個(gè)相鄰的單元格。 0<n,m<=100
輸入格式
輸入包含若干個(gè)矩陣,對(duì)于每個(gè)矩陣,第一行包含兩個(gè)整數(shù)n和m,分別表示這個(gè)矩陣的行數(shù)和列數(shù)。接下來(lái)n行每行包含m個(gè)字符。安全區(qū)域用‘.’表示,有地雷區(qū)域用’‘表示。當(dāng)n=m=0時(shí)輸入結(jié)束。
輸出格式
對(duì)于第i個(gè)矩陣,首先在單獨(dú)的一行里打印序號(hào):“Field #i:”,接下來(lái)的n行中,讀入的’.'應(yīng)被該位置周?chē)牡乩讛?shù)所代替。輸出的每?jī)蓚€(gè)矩陣必須用一個(gè)空行隔開(kāi)。
樣例輸入
4 4
…
…
.…
…
3 5
**…
…
.…
0 0
樣例輸出
Field #1:
100
2210
110
1110
Field #2:
**100
33200
1*100
(注意兩個(gè)矩陣之間應(yīng)該有一個(gè)空行,由于oj的格式化這里不能顯示出來(lái))
數(shù)據(jù)規(guī)模和約定
0<n,m<=100
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;public class 掃雷 {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc=new Scanner(System.in);List<StringBuffer> sb=new ArrayList<StringBuffer>();int count=1;while(true){int a=sc.nextInt();int b=sc.nextInt();if(a==b&&a==0)break;int[][] arr=new int[a][b];sc.nextLine();for(int i=0;i<a;i++){String str=sc.nextLine();for(int j=0;j<b;j++){if(str.charAt(j)=='*')arr[i][j]=9;else if(str.charAt(j)=='.')arr[i][j]=0;}}for(int i=0;i<a;i++){for(int j=0;j<b;j++){if(arr[i][j]==9){if(i-1>=0&&j-1>=0&&arr[i-1][j-1]!=9)arr[i-1][j-1]++;if(i-1>=0&&arr[i-1][j]!=9)arr[i-1][j]++;if(i-1>=0&&j+1<b&&arr[i-1][j+1]!=9)arr[i-1][j+1]++;if(j-1>=0&&arr[i][j-1]!=9)arr[i][j-1]++;if(j+1<b&&arr[i][j+1]!=9)arr[i][j+1]++;if(i+1<a&&j-1>=0&&arr[i+1][j-1]!=9)arr[i+1][j-1]++;if(i+1<a&&arr[i+1][j]!=9)arr[i+1][j]++;if(i+1<a&&j+1<b&&arr[i+1][j+1]!=9)arr[i+1][j+1]++;}}}String s="Field #"+count+":";sb.add(new StringBuffer(s));for(int i=0;i<a;i++){StringBuffer bu=new StringBuffer();for(int j=0;j<b;j++){if(arr[i][j]==9)bu.append('*');elsebu.append(arr[i][j]); }sb.add(bu);}StringBuffer bb=new StringBuffer('\n');sb.add(bb);count++; }for(int i=0;i<sb.size();i++)System.out.println(sb.get(i));}}
總結(jié)
以上是生活随笔為你收集整理的Java实现 蓝桥杯VIP 算法提高 扫雷的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。