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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java实现 蓝桥杯VIP 算法提高 扫雷

發(fā)布時(shí)間:2024/1/8 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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ò),歡迎將生活随笔推薦給好友。