ACM题目————马拦过河卒
棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。
棋盘用坐标表示,A点(0, 0)、B点(n, m)(n, m为不超过15的整数),同样马的位置坐标是需要给出的。现在要求你计算出卒从A点能够到达B点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。
一行四个数据,分别表示B点坐标和马的坐标。(保证所有的数据有解)
一个数据,表示所有的路径条数。
6 6 3 3
//马栏过河卒——时间超限
using namespace std;
int MAP[20][20];
int n, m, mx, my, cnt;
int dx[] = {1,0}, dy[] = {0,1};
int a[8]={-2,-2,-1,-1,1,1,2,2};//马控制的方向
int b[8]={1,-1,2,-2,2,-2,1,-1}; void DFS(int x, int y)
{
if(MAP[x][y] || x<0 || x>n || y<0 || y>m) return ;//边界
if( x == n && y == m )
{
cnt ++ ;
return ;
}
MAP[x][y] = 1 ;
for(int i=0; i<2; i++)
DFS(x+dx[i],y+dy[i]);
MAP[x][y] = 0 ;
} int main()
{
cin >> n >> m >> mx >> my ;
memset(MAP,0,sizeof(MAP));
MAP[mx][my] = 1 ;
for(int i=0; i<8; i++)
MAP[mx+a[i]][my+b[i]] = 1 ;
cnt = 0 ;
DFS(0,0);
cout << cnt << endl ; return 0;
}
后来,仔细想了会,就用递推给AC了!O(∩_∩)O哈哈~
#include <bits/stdc++.h> using namespace std;
int MAP[20][20];
long long cot[20][20];
int n, m, mx, my;
int a[8]= {-2,-2,-1,-1,1,1,2,2}; //马控制的方向
int b[8]= {1,-1,2,-2,2,-2,1,-1}; int main()
{
while(cin >> n >> m >> mx >> my )
{
for(int i=0;i<20;i++)
for(int j=0;j<20;j++)
{
MAP[i][j]=1;//给数组初始化,赋为1,表可走
cot[i][j]=0;//计数
} MAP[mx][my] = 0 ;//马控制的点
for(int i=0; i<8; i++)
{
int x = mx + a[i] ;
int y = my + b[i] ;
if( x >=0 && x<20 && y>=0 && y<20)
MAP[x][y] = 0 ;
}
bool flag = true ;
for(int i=0; i<20; i++)
{
if( flag )
{
if(MAP[0][i]==0) flag = false ;
else cot[0][i] = 1 ;
}
}
flag = true ;
for(int i=0; i<20; i++)
{
if( flag )
{
if(MAP[i][0]==0) flag = false ;
else cot[i][0] = 1 ;
}
} for(int i=1; i<20; i++)
for(int j=1; j<20; j++)
if(MAP[i][j])
cot[i][j] = cot[i-1][j]*MAP[i-1][j]+cot[i][j-1]*MAP[i][j-1]; cout << cot[n][m] << endl ;
} return 0;
}
ACM题目————马拦过河卒的更多相关文章
- NOIP 马拦过河卒
描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦过河卒”. 棋盘 ...
- ACM 马拦过河卒(动态规划)
解题思路: 用一个二维数组a[i][j]标记 马的位置和马的跳点(统称控制点)该位置=1: 再用一个二维数组f[i][j]表示行进的位置,如果前一行的当前列不是马的控制点,或者前一列的当前行不是马的控 ...
- 【动态规划】Vijos P1121 马拦过河卒
题目链接: https://vijos.org/p/1616 题目大意: 卒从(0,0)走到(n,m),只能向下或向右,不能被马一步碰到或走到马,有几种走法. 题目思路: [动态规划] 把马控制的地方 ...
- Vijos 1121 马拦过河卒
首先要看清题目,卒只能向右或者向下走.而不是四周转.这样的话就无解了. 定义f[i][j],表示走到(i,j)这个点时的总步数.这样就写出了一个递推公式f[i][j]=f[i-1]+f[i][j-1] ...
- AC日记——过河卒 洛谷 1002
题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦过河卒”. ...
- SDUT 1265-马停下过河卒(DFS)
马拦过河卒 nid=24#time" title="C.C++.go.haskell.lua.pascal Time Limit3000ms Memory Limit 65536K ...
- P1002 过河卒
题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦过河卒”. ...
- 洛谷 P1002 过河卒 【棋盘dp】
题目链接:https://www.luogu.org/problemnew/show/P1002 题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点 ...
- 洛谷[P1002]过河卒
原题地址:https://www.luogu.org/problemnew/show/P1002 题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点 ...
随机推荐
- ssh隧道技术
大家都知道SSH是一种安全的传输协议,用在连接服务器上比较多.不过其实除了这个功能,它的隧道转发功能更是吸引人.下面是个人根据自己的需求以及在网上查找的资料配合自己的实际操作所得到的一些心得. SSH ...
- crsctl stat res -t 和 crsctl stat res -init -t
11.2.0.2的grid infrastructure中crsctl stat res命令不再显示如ora.cssd.ora.ctssd.ora.diskmon等基础资源的信息.但是查看这些基础资源 ...
- AJAX POST&跨域 解决方案 - CORS(转载)
跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免 ...
- Windows2000安装Winform Clickonce提示升级系统版本的解决方案
Windows2000安装Winform Clickonce提示升级系统版本.只需要把所有应用的DLL的独立性设置为false就可以了.
- css 正方体
<!DOCTYPE html><html lang="zh-cmn-Hans"><head><meta charset="utf ...
- HTML语言的一些元素(四)
以下资料整理自网路 1.锚点是网页制作中超级链接的一种,又叫命名锚记.命名锚记像一个迅速定位器一样是一种页面内的超级链接,运用相当普遍. 英文名:anchor 使用命名锚记可以在文档中设置标记,这些标 ...
- php-wamp滴定仪网站的根目录
1.点击wamp中的Apache中的httpd.conf:如下图修改两处 2.进入wamp的安装目录下:修改这两个文件(目的:修改wamp中网站目录) 内容如下图: 关闭wamp服务:重启wamp
- Android -- FragmentTabHost实现微信底部切换
1,在商城类的项目中我们开始一个项目的时候经常出现这样的需求,如下图所示: 下面使用户可以切换的模块,上面是对应的模块的详细内容,实现这个效果有很多方式,可以使用radiobutton+fragmen ...
- java中创建线程的几种方法及区别
1,实现Runnable接口创建线程 特点: A:将代码和数据分开,形成清晰的模型 B:线程体run()方法所在的类可以从其它类中继承一些有用的属性和方法 C:有利于保持程序风格的一致性 2,继承Th ...
- 夺命雷公狗---微信开发17----自定义菜单的事件推送,响应菜单的CLICK
废话不多说,index.php 代码如下所示: <?php /** * wechat php test */ //define your token require_once "com ...