蓝桥杯1195 算法提高 扫雷(模拟)
原题链接:算法提高 扫雷
- 思路: 水题,对于空白的点直接计算周围的地雷数,并存入数组。
Code:
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static char[][] ch = new char[105][105];
static int[][] a = new int[105][105];
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in);
int t=1;
while(cin.hasNext()) {
int n = cin.nextInt();
int m = cin.nextInt();
if(n==0 || m==0) break;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
a[i][j]=0;
for(int i=1;i<=n;i++) {
String str=cin.next();
for(int j=1;j<=m;j++)
ch[i][j] = str.charAt(j-1);
}
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) {
if(ch[i][j]=='.') {
if(ch[i-1][j-1]=='*' && i-1>=1 && j-1>=1) a[i][j]++;
if(ch[i-1][j]=='*' && i-1>=1) a[i][j]++;
if(ch[i-1][j+1]=='*' && i-1>=1 && j+1<=m) a[i][j]++;
if(ch[i][j-1]=='*' && j-1>=1) a[i][j]++;
if(ch[i][j+1]=='*' && j+1<=m) a[i][j]++;
if(ch[i+1][j-1]=='*' && i+1<=n && j-1>=1) a[i][j]++;
if(ch[i+1][j]=='*' && i+1<=n) a[i][j]++;
if(ch[i+1][j+1]=='*' && i+1<=n && j+1<=m) a[i][j]++;
}
}
}
System.out.println("Field #" + t + ":");
for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) {
if(ch[i][j]=='.')
System.out.print(a[i][j]);
else
System.out.print(ch[i][j]);
}
System.out.println();
}
System.out.println();
t++;
}
}
}
蓝桥杯1157 算法提高 栅格打印问题(模拟)
原题链接:算法提高 栅格打印问题
- 思路: 题不难,就是有个坑,如果行或者列为 0 ,就直接结束。
蓝桥杯太坑了,没有评测也就算了,还不给数据范围。
Code:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in);
int n = cin.nextInt(), m = cin.nextInt();
if(n==0 || m==0) return;
for(int i=1;i<=2*n+1;i++) {
for(int j=1;j<=2*m+1;j++) {
if(i%2==1) {
if(j%2==1) System.out.print("+");
else System.out.print("-");
}
else {
if(j%2==1) System.out.print("|");
else System.out.print(" ");
}
}
System.out.println();
}
}
}