过河卒(Noip2002)(dp)
2024-08-30 07:48:27
过河卒(Noip2002)
时间限制: 1 Sec 内存限制: 128 MB
提交: 7 解决: 6
[提交][状态][讨论版][命题人:quanxing]
题目描述
棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图3-1中的C点和P1,……,P8,卒不能通过对方马的控制点。棋盘用坐标表示,A点(0,0)、B点(n, m) (n,m为不超过20的整数),同样马的位置坐标是需要给出的,C≠A且C≠B。现在要求你计算出卒从A点能够到达B点的路径的条数。
输入
给出n、m和C点的坐标。
输出
从A点能够到达B点的路径的条数。
样例输入
8 6 0 4
样例输出
1617
#include<stdio.h>
#include<string.h>
int a[][];
int main()
{
memset(a,-,sizeof(a));
int i,j,m,n,x,y;
scanf("%d%d%d%d",&n,&m,&x,&y);
m++;n++;x++;y++;
for(i=;i<=n;i++)a[i][]=;
for(i=;i<=m;i++)a[][i]=;
a[][]=;
a[x][y]=;
a[x+][y+]=;
a[x+][y-]=;
a[x+][y+]=;
a[x+][y-]=;
a[x-][y+]=;
a[x-][y-]=;
a[x-][y+]=;
a[x-][y-]=; for(i=;i<=n;i++)
for(j=;j<=m;j++)
if(a[i][j]==-)
a[i][j]=a[i-][j]+a[i][j-];
printf("%d",a[n][m]);
return ;
}
最新文章
- mac 键盘映射 karabiner
- Different Approaches for MVCC
- DBHelper
- Bootstrap系列 -- 25. 下拉菜单分割线
- offsetTop和scrollTop的差别
- [转]浅谈C/C++内存泄露及其检测工具
- python自学笔记(一)简单了解python
- css修炼宝典
- css基础-选择器
- MySQL聚集索引和非聚集索引
- 【故障公告】SendCloud 邮件发送服务故障造成大量 QQ 邮箱收不到邮件
- .node 文件require时候显示Error: The specified module could not be found
- 10.5ORM回顾(2)
- jQuery.Ajax()执行WCF Service的方法
- 微服务之springCloud-config-bus(十三)
- golang channel 的使用
- BitAdminCore框架更新日志20180519
- JS数组与PHP数组的对比
- 用PowerDesigner对现有的数据库反向工程建立E-R图
- SSHLibrary库关键字汇总