zoukankan      html  css  js  c++  java
  • 洛谷——P1002 过河卒||codevs——T1010 过河卒

    https://www.luogu.org/problem/show?pid=1002#sub||http://codevs.cn/problem/1010/

    题目描述

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

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

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

    输入输出格式

    输入格式:

    一行四个数据,分别表示B点坐标和马的坐标。

    输出格式:

    一个数据,表示所有的路径条数。

    输入输出样例

    输入样例#1:
    6 6 3 3
    
    输出样例#1:
    6
    

    说明

    结果可能很大!

    注意越界处理

     1 #include <algorithm>
     2 #include <iostream>
     3 #include <cstdio>
     4 
     5 using namespace std;
     6 
     7 long long n,m,x,y;
     8 long long map[350][350];
     9 long long f[350][350];
    10 
    11 int main()
    12 {
    13     cin>>n>>m>>x>>y;
    14     map[x][y]=1;
    15     if(x+1>=0&&y+2>=0) map[x+1][y+2]=1;
    16     if(x+1>=0&&y-2>=0) map[x+1][y-2]=1;
    17     if(x+2>=0&&y+1>=0) map[x+2][y+1]=1;
    18     if(x+2>=0&&y-1>=0) map[x+2][y-1]=1;
    19     if(x-1>=0&&y+2>=0) map[x-1][y+2]=1;
    20     if(x-1>=0&&y-2>=0) map[x-1][y-2]=1;
    21     if(x-2>=0&&y+1>=0) map[x-2][y+1]=1;
    22     if(x-2>=0&&y-1>=0) map[x-2][y-1]=1;
    23     f[0][0]=1;
    24     for(int i=0;i<=n;i++)
    25         for(int j=0;j<=m;j++)
    26             if(map[i][j]) f[i][j]=0;
    27             else
    28             {
    29                 if(i) f[i][j]+=f[i-1][j];
    30                 if(j) f[i][j]+=f[i][j-1];
    31             }
    32     cout<<f[n][m];
    33     return 0;
    34 }
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    CSS 3 中的多列属性
    CSS3 3D转换
    CC3中的2D转换
    ubuntu sudo: pip:找不到命令
    ubuntu 下更新pip后发生 ImportError: cannot import name 'main'的问题解决
    ubuntu 安装pip
    gradle下载
    L0,L1,L2正则化浅析
    安装使用离线版本的维基百科(Wikipedia)
    Linux中CPU亲和性(affinity)
  • 原文地址:https://www.cnblogs.com/Shy-key/p/6745277.html
Copyright © 2011-2022 走看看