小丑


私信TA

用户名:lxy123

访问量:840

签 名:

等  级
排  名 75735
经  验 157
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 菜鸡学院
专  业

  自我简介:

解题思路:

注意事项:
我TMD就想问问结果为什么是错,我在自己eclipse跑的蛮好的。。。mmp
参考代码:

import java.util.HashMap;

import java.util.Map;

import java.util.Scanner;


public class Main {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

// 表示正方形格子的行数和列数。

int m = scan.nextInt();

int n = scan.nextInt();


int[][] a = new int[m][n];


if (3 < m && n < 100) {

//生成二维数组

int i, j;

for (i = 0; i < m; i++) {

for (j = 0; j < n; j++) {

a[i][j] = scan.nextInt();

}

}

//x,y表示蚂蚁所在行号和列号(行号从上到下增长,列号从左到右增长,都是从0开始编号)

//s 是一个大写字母,表示蚂蚁头的朝向,我们约定:上下左右分别用:UDLR表示

//k表示蚂蚁走的步数 

int x = scan.nextInt();

int y = scan.nextInt();


String s = scan.next();

int k = scan.nextInt();


//用哈希表存s

Map<String, Integer> map = new HashMap<String, Integer>();


map.put("U", 1);

map.put("D", 2);

map.put("L", 3);

map.put("R", 4);

//遍历k次

int h;

for (h = 0; h < k; h++) {

switch (map.get(s)) {

case 1:

if (a[x][y] == 1) {

a[x][y] = 0;

y++;

s = "R";

} else {

a[x][y] = 1;

y--;

s = "L";

}

break;

case 2:

if (a[x][y] == 1) {

a[x][y] = 0;

y--;

s = "L";

} else {

a[x][y] = 1;

y++;

s = "R";

}

break;

case 3:

if (a[x][y] == 1) {

a[x][y] = 0;

x--;

s = "U";

} else {

a[x][y] = 1;

x++;

s = "D";

}

break;

case 4:

if (a[x][y] == 1) {

a[x][y] = 0;

x++;

s = "D";

} else {

a[x][y] = 0;

x--;

s = "U";

}

break;

}

}

System.out.println(x + " " + y);

}else{

System.out.println("\n"+0 + " " + 0);

}

}

}


 

0.0分

0 人评分

  评论区

  • «
  • »