题目描述

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

例如上图 C 点上的马可以控制 9 个点(图中的P1​,P2​,⋯P8​ 和 C)。卒不能通过对方马的控制点。

棋盘用坐标表示,A 点(0,0)、B 点$(n,m)(n,m \leq 20)$,同样马的位置坐标是需要给出的。

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

输入描述

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

输出描述

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

输入输出样例

示例 1

输入

6 6 3 3

输出

6

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

思路

我们定义状态dp[][]为卒子走到坐标(i,j)时能走的条数

如果不考虑马的控制,i,j) 点的路径条数等于它上面和左边的路径条数之和,即

我们这道题中要考虑马的位置,当卒子走到马的控制点时,我们跳过这个点,让这个点还为0,不会影响控制点下边和左边的dp[][],这样我们就可以继续计算其他点的dp[][]的值了。

代码

n,m,x,y=map(int,input().split())dp=[[0]*40 for i in range(40)]
#可以控制的八个点和初始位置
dx=[0,2,1,-1,-2,-2,-1,1,2]
dy=[0,1,2,2,1,-1,-2,-2,-1]lst=[[0,0]]def check(x,y):global n,mif x<0 or x>n or y<0 or y>m:return Falseelse:return True#走到(0,0)位置的路只有一条
dp[0][0]=1
for i in range(9):X=x+dx[i]Y=y+dy[i]if check(X,Y)==False:continueelse:lst.append([X,Y])for i in range(0,n+1):for j in range(0,m+1):if [i,j] in lst:continueelse:   dp[i][j]=dp[i-1][j]+dp[i][j-1]
print(dp[n][m])

过河卒-蓝桥杯-动态规划相关推荐

  1. 蓝桥杯动态规划基础篇(一)

    一.什么是动态规划?有套路吗? 动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程.20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在 ...

  2. Python 蓝桥杯 动态规划 2道例题+配套1道历年真题

    距离蓝桥杯64天  快和小郑一起准备蓝桥杯吧 蓝桥杯真题题目链接:数字三角形 Leedcode青蛙跳台阶         Leedcode不同路径 特此鸣谢这位作者的点播,小郑从中获益不少文章来源ht ...

  3. P1002 过河卒(dp动态规划,洛谷,java)

    洛谷链接:https://www.luogu.com.cn/problem/P1002 import java.util.Scanner;public class Main { public stat ...

  4. 第十一届蓝桥杯大赛(2020年)软件类省赛第二场 Python大学组 真题+个人解答

    试题A:门牌制作 本题总分:5分 [问题描述] 小蓝要为一条街的住户制作门牌号. 这条街一共有2020位住户,门牌号从1到2020编号. 小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将 ...

  5. Java 01背包【动态规划·蓝桥杯练习题】(相信杨超越,相信锦鲤,默默努力,其它的看天意)

    锦鲤镇楼 1.题目描述: 时间限制:1.0s 内存限制:256.0MB 关键字:01背包 动态规划 问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高 ...

  6. java迷宫类编程题_第十届蓝桥杯省赛java类B组 试题 E:迷宫 (动态规划之回溯法)...

    问题描述 试题 E: 迷宫 [问题描述] 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为 ...

  7. Java算法学习:蓝桥杯——地宫寻宝(DFS+动态规划—记忆型递归)

    Java算法学习:蓝桥杯--地宫寻宝(DFS✖记忆型递归) 题目: 标题:地宫取宝X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签.地宫的入口在左上角,出 ...

  8. P8775 [蓝桥杯 2022 省 A] 青蛙过河

    题目链接:[蓝桥杯 2022 省 A] 青蛙过河 - 洛谷 解法一:打暴力: 二分+模拟 很直接,不解释,肯定超时 代码: #include<iostream> #include<c ...

  9. 题解动态规划:蓝桥杯2022国赛B组 题解 A题目

    在这组题(蓝桥杯C/C++ B组 国赛)里面挑了几道喜欢的题目,做了一下,笔记思路如下.(其实是我觉得能做出的题 ) 题目图片来源于:CSDN 罚时大师月色 A:2022 [题目大意] 请问2022, ...

最新文章

  1. ie浏览器中 overflow:hidden无作用的解决方案
  2. python代码格式-pyhon代码设计格式指南
  3. 神经网络到底是如何实现分类的---共振参考系假设
  4. 不知道什么期刊会议是国内计算机行业所承认的好会,顶会?中国计算机协会ccf了解一下!祝你圆梦顶刊、顶会
  5. 监控mysql主从复制监控_shell脚本监控mysql主从同步状态
  6. c++ map初始化同时赋值_Golang入门教程——map篇
  7. 《Ubuntu学习笔记》——如何建立软链接
  8. 想象力惊人!只凭一句话,AI就能脑补出动漫小片
  9. 深入解析ORACLE字符集
  10. 【linux】具体芯片MACHINE_START处理
  11. 生信技能树 WES分析教程学习(1)conda安装软件,配置环境
  12. 医疗相关计算机系统,智能医疗信息管理系统
  13. Proteus 里面library文件夹找不到,怎么找到library文件夹。
  14. AWicons Pro 把图片资源变成cur光标资源
  15. python数据分析的常用方法_16种常用的数据分析方法汇总
  16. [jzoj 4722] [NOIP2016提高A组模拟8.21] 跳楼机 解题报告 (spfa+同余)
  17. Mac mini 2018 win10 外接显卡终极教程
  18. TAPD 完整项目工作流
  19. bug-猎豹wifi提示无线网卡未打开(微星笔记本)
  20. js实现动态星空背景

热门文章

  1. 13.在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求一个数组的小和。(左神算法基础班源码)
  2. 基于javaweb的报销erp系统(java+ssm+jsp+layui+jquery+mysql)
  3. 2021年R2移动式压力容器充装最新解析及R2移动式压力容器充装考试总结
  4. android 获取 imei号码
  5. 百度AI攻略:植物识别
  6. 邮箱扒头像来告诉你怎么写简单的脚本扒图
  7. 蒙特卡洛方法及计算圆周率(Python实现)
  8. 线性方程解法(齐次,非齐次)
  9. 航天广电广播系统服务器调试,广播系统应该做哪些调试
  10. 手机re怎么刷linux,手机刷机刷入recovery的方法小米刷recovery固件方法