zoukankan      html  css  js  c++  java
  • (Java实现) 过河卒

    过河卒
    题目描述
    棋盘上AA点有一个过河卒,需要走到目标BB点。卒行走的规则:可以向下、或者向右。同时在棋盘上CC点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。

    棋盘用坐标表示,AA点(0, 0)(0,0)、BB点(n, m)(n,m)(nn, mm为不超过2020的整数),同样马的位置坐标是需要给出的。

    现在要求你计算出卒从AA点能够到达BB点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。

    输入输出格式
    输入格式:
    一行四个数据,分别表示BB点坐标和马的坐标。

    输出格式:
    一个数据,表示所有的路径条数。

    输入输出样例
    输入样例#1: 复制
    6 6 3 3
    输出样例#1: 复制
    6
    说明
    结果可能很大!

    import java.util.Scanner;
    
    
    public class guohezu {
    	
    	  static Scanner sc = new Scanner(System.in);
    	    static int Bx = sc.nextInt();
    	    static int By = sc.nextInt();
    	    static int Hx = sc.nextInt();
    	    static int Hy = sc.nextInt();
    	    static int A[][] = new int[Bx+1][By+1]; //用来存放马的位置以及它可以到达的地方
    	    static long M[][] = new long[Bx+1][By+1];//用来存放路线的
    	    public static void main(String[] args) {
    
    	        if (Hx >= 2) {
    	            A[Hx - 2][Hy + 1] = -1;
    	            if (Hy > 0)
    	                A[Hx - 2][Hy - 1] = -1;
    
    	        }
    	        if (Hy >= 2) {
    	            if (Hx > 0)
    	                A[Hx - 1][Hy - 2] = -1;
    	            A[Hx + 1][Hy - 2] = -1;
    
    	        }
    	        if (Hy > 0)
    	            A[Hx + 2][Hy - 1] = -1;
    	        if (Hx > 0)
    	            A[Hx - 1][Hy + 2] = -1;
    	        A[Hx][Hy] = -1;
    	        A[Hx + 1][Hy + 2] = -1;
    	        A[Hx + 2][Hy + 1] = -1;
    	        //上面的操作吧马可以到达的地方全部赋值为-1
    	        M[0][0]=1;
    	        for (int i = 0; i <=Bx; i++) {
    	            for (int j = 0; j <=By; j++) {
    	                if(i==0&&j>0)M[i][j]=M[i][j-1];//防止越界
    	                if(j==0&&i>0)M[i][j]=M[i-1][j];//防止数组越界
    	                if(i>0&&j>0)M[i][j]=M[i-1][j]+M[i][j-1];    //递推方程
    	                if(A[i][j]==-1)M[i][j]=0; //如果是马可到达的地方,那么撤回操作
    	            }
    	        }
    
    	         System.out.println(M[Bx][By]);
    	    }
    
    }
    
    
  • 相关阅读:
    python json 和 pickle的补充 hashlib configparser logging
    go 流程语句 if goto for swich
    go array slice map make new操作
    go 基础
    块级元素 行内元素 空元素
    咽炎就医用药(慢性肥厚性咽炎)
    春季感冒是风寒还是风热(转的文章)
    秋季感冒 咳嗽 怎么选药
    解决IE浏览器“无法显示此网页”的问题
    常用的 css 样式 记录
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13079077.html
Copyright © 2011-2022 走看看