1. 阿里0731份试题
小强最近在研究某个飘洋过海的游戏。
游戏可以看成一个n∗mn*mn∗m的方格图,从左上角(1,1)(1, 1)(1,1)到右下角的(n,m)(n, m)(n,m)有两种地面,CCC表示为陆地SSS表示海洋,每次穿行只能到达上下左右四个格子之一,不能走到方格图之外。
在陆地之间穿行一格需要花费三点行动力,在海洋之间穿行一格需要花费2点行动力。
但是从陆地和从海洋到陆地穿行则需要5点行动力。
输入描述:
第一行输入两个整数n,m,qn, m, qn,m,q,表示方格图的大小和询问次数。
随后nnn行,每行mmm个元素每个元素为’C’或’S’,详见样例。
随后q行每行四个数字bx,by,ex,eybx, by, ex, eybx,by,ex,ey,分别代表起点的坐标和终点的坐标。
输入:
4 4 2
CCCS
SSSS
CSCS
SSCC
1 1 3 4
3 1 1 3
输出
13
14
2. DFS模板:
package org.example;// 本题为考试多行输入输出规范示例,无需提交,不计分。
import java.util.Scanner;
public class Main {
private static boolean[][] isVisit;
private static int[][] direction = {
{
0, 1}, {
0, -1}, {
1, 0}, {
-1, 0}};
private static int n, m, q, bx, by, ex, ey,