洛谷 P1002 过河卒
来源:互联网 发布:如何查看淘宝商品类目 编辑:程序博客网 时间:2024/05/16 06:20
洛谷 P1002 过河卒
题目
题目描述
棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。
棋盘用坐标表示,A点(0, 0)、B点(n, m)(n, m为不超过20的整数),同样马的位置坐标是需要给出的。
现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。
输入输出格式
输入格式:
一行四个数据,分别表示B点坐标和马的坐标。
输出格式:
一个数据,表示所有的路径条数。
输入输出样例
输入样例#1:
6 6 3 3
输出样例#1:
6
说明
结果可能很大!
题解
DP,注意数组要用int64(long long)
代码(Pascal)
const flag:array[0..8,0..1]of longint=((0,0),(1,2),(1,-2),(-1,2),(-1,-2),(2,1),(-2,1),(2,-1),(-2,-1));var n,m,x,y:longint; f:array[-1..25,-1..25]of int64; procedure init; begin readln(n,m,x,y); end; function check(a,b:longint):boolean; var i:longint; begin for i:=0 to 8 do if (x+flag[i,0]=a)and(y+flag[i,1]=b) then exit(false); exit(true); end; procedure main; var i,j:longint; begin fillchar(f,sizeof(f),0); f[0,0]:=1; for i:=0 to n do for j:=0 to m do if ((i<>0)or(j<>0))and(check(i,j)) then f[i,j]:=f[i-1,j]+f[i,j-1]; end; procedure print; begin write(f[n,m]); end; begin init; main; print; end.
阅读全文
1 0
- 洛谷 P1002 过河卒
- 洛谷 P1002 过河卒
- 【洛谷】P1002-过河卒
- 【搜索】洛谷 P1002 过河卒
- 洛谷[P1002]过河卒 垃圾动规
- P1002 过河卒
- P1002过河卒
- P1002 过河卒
- P1002 过河卒
- P1002 过河卒
- P1002 过河卒
- P1002 过河卒
- 洛谷P1002 Codevs1011 过河卒 --2002年NOIP全国联赛普及组 dp递推
- vijos P1002 过河
- vijos p1002 过河
- vijos-p1002-过河
- Vijos P1002过河
- 【33.00%】【vijos P1002】过河
- javaweb 路径总结
- (转)如何看待IT对于证券行业的价值
- Awesome python (了不起的python)
- C++第5次实验——项目五
- 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
- 洛谷 P1002 过河卒
- TCP报头中的URG 与 PSH标志不同之处与作用
- byte与String
- 杭电题型
- JS显示具体时间
- java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@358df999
- 总结:Bootstrap(自助法),Bagging,Boosting(提升)
- MyBatis批量插入数据配置文件
- Tensorflow MNIST 手写识别