过河卒

题目描述

棋盘上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]);
} }

(Java实现) 过河卒的更多相关文章

  1. SDUT 1265-马停下过河卒(DFS)

    马拦过河卒 nid=24#time" title="C.C++.go.haskell.lua.pascal Time Limit3000ms Memory Limit 65536K ...

  2. AC日记——过河卒 洛谷 1002

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

  3. NOIP 2002过河卒 Label:dp

    题目描述 如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点.例如 ...

  4. ACM题目————马拦过河卒

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

  5. wikioi 1010 过河卒

    题目描述 Description 如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点 ...

  6. Codevs 1010 过河卒

     时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下.或者向右.同 ...

  7. Codevs 1010 过河卒 2002年NOIP全国联赛普及组

    1010 过河卒 2002年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 传送门 题目描述 Description 如图,A 点有一个过河卒 ...

  8. LFYZ-OJ ID: 1020 过河卒(NOIP2002)

    过河卒 Proble Description 如图,A 点有一个过河卒,需要走到目标 B 点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃 ...

  9. P1002 过河卒

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

随机推荐

  1. Ubuntu系统make menuconfig的依赖包ncurses安装

    Linux内核或者u-boot进行make menuconfig的时候,如果系统上没有安装ncurses,就会出现以下报错 *** Unable to find the ncurses librari ...

  2. redis 集群安装

    redis集群安装 1.下载redis源码 2.解压并进入解压后的文件夹redis内 3.make,生成一系列的文件(mkreleasehdr.sh, redis-benchmark, redis-c ...

  3. Quartus II 与modelsim连接不上的问题

    在Quartus II 中tools>options>General>EDA Tool Options 设置modelsim 路径 说明:不管是Quartus II 与modelsi ...

  4. 11JAVA基础-集合

    一.集合 ` 二.Collection类 Collection 是单列的顶层类. Collection是接口. 创建对象需要借助多态. //e为集合中数据类型 //ArrayList是List的实现类 ...

  5. myeclipse 创建maven web项目

    在项目开发中常用到maven进行项目管理!在这里记录下maven创建web项目的过程方便以后查看! 第一步.新建maven项目 选择maven project点击下一步 一直next后最后一步设置:在 ...

  6. java 版本比较

    public class version { public static int compareVersion(String version1, String version2) throws Exc ...

  7. 【雕爷学编程】MicroPython动手做(01)——春节后入手了K210开发板

    Python的开放.简洁.黏合正符合了现发展阶段对人工智能.大数据分析.可视化.各种平台程序协作产生了快速的促进作用.自Python3的发布到现在已有五六年的时间,从刚发布的反对声音到慢慢被接受与喜欢 ...

  8. 弹性式数据集RDD

    弹性式数据集RDD ​ 一.RDD简介二.创建RDD        2.1 由现有集合创建        2.2 引用外部存储系统中的数据集        2.3 textFile & who ...

  9. Redux:Reducers

    action只是描述了“发生了什么事情(导致state需要更新)”,但并不直接参与更新state的操作.state的更新由reducer函数执行. 其基本模式是:(state,action)=> ...

  10. 汇编语言 简单的Hello World

    DATA SEGMENT STRING DB 'Hello World!','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV ...