noip2002 过河卒 (动态规划求路径总数)
来源:互联网 发布:天天饮食软件 编辑:程序博客网 时间:2024/05/17 23:28
A1142. 过河卒
时间限制:1.0s 内存限制:256.0MB
总提交次数:682 AC次数:155 平均分:52.93
将本题分享到:
查看未格式化的试题 提交 试题讨论
试题来源
NOIP2002 普及组
问题描述
: 如图,A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点。例如上图 C 点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C)。卒不能通过对方马的控制点。
棋盘用坐标表示,A 点(0,0)、B 点(n,m)(n,m 为不超过 20 的整数,并由键盘输入),同样马的位置坐标是需要给出的(约定: C<>A,同时C<>B)。现在要求你计算出卒从 A 点能够到达 B 点的路径的条数。
棋盘用坐标表示,A 点(0,0)、B 点(n,m)(n,m 为不超过 20 的整数,并由键盘输入),同样马的位置坐标是需要给出的(约定: C<>A,同时C<>B)。现在要求你计算出卒从 A 点能够到达 B 点的路径的条数。
输入格式
四个整数 分别表示B点的坐标(n,m)以及对方马的坐标(X,Y){不用判错}
输出格式
一个整数(路径的条数)。
样例输入
6 6 3 2
样例输出
17
代码:
#include<cstdio>#include<algorithm>using namespace std;const int maxn=20;long long n,m,x,y,f[maxn+10][maxn+10];bool ok(long long i,long long j){ if(i>n || j>m)return 0; if(i==x && j==y)return 0; if(abs(i-x)==2 && abs(j-y)==1)return 0; if(abs(i-x)==1 && abs(j-y)==2)return 0; return 1;}int main(){ long long i,j,k; scanf("%I64d%I64d%I64d%I64d",&n,&m,&x,&y); f[0][0]=1; for(i=0;i<=n;i++) for(j=0;j<=m;j++) { if(ok(i+1,j))f[i+1][j]+=f[i][j]; if(ok(i,j+1))f[i][j+1]+=f[i][j]; } printf("%I64d\n",f[n][m]); return 0;}
1 0
- noip2002 过河卒 (动态规划求路径总数)
- |Vijos|NOIP2002|动态规划|P1121 马拦过河卒
- 过河卒(动态规划)
- NOIP2002-过河卒题解
- 过河卒(NOIP2002)
- NOIP2002过河卒
- 压缩路径,动态规划 过河(River)题解
- 马拦过河卒(NOIP2002)
- NOIP2002-PJ-4 过河卒
- 【9307】&【a303】过河卒(NOIP2002)
- 过河卒-动态规划+高精度
- 【Algothrim】动态规划实例(马拦过河卒)
- Vijos P1121 马拦过河卒(动态规划)
- 动态规划_求连续整数的划分方案总数
- [DP]NOIP2002/FJSDFZOJ 1081 过河卒
- ACM 78. [NOIP2002] 过河卒(dp)
- NOIP2002-----马拦过河卒【经典搜索】
- 过河卒【动态规划】-计算出每个点若为目标点的路径数
- 图像分割之(六)交叉视觉皮质模型(ICM)
- Spring4新特性:泛型限定式依赖注入
- 控件选择日期不能小于今天
- UITableView设置cell为不可选?
- css3的过渡transition
- noip2002 过河卒 (动态规划求路径总数)
- Struts 2防止表单重复提交
- RAID5和RAID10,哪种RAID更适合你(下)
- 0009 Java 与 Http 协议
- [随笔]github for winidows 登录失败
- svn merge 时候出现的问题以及解决方法
- c++中的quick_sort
- (Android特效)—OriSim3D-Android--opengl 实现各种逼真折纸效果
- Letter Combinations of a Phone Number