2016-12-10 dfs的简单总结
最近做了很多关于搜索的题目,今天也是做一个小总结。
先附上几道基本题的代码:
马兰过河卒:在一个大棋盘上,一个过河卒在(0,0)的位置上,还有一只马,马的位置固定的,可以向8个位置走,这些马可以走的地方都算马的攻击范围内。小卒子不能走到马的攻击范围。(不是卒子一步,马一步,只有当卒子走进马一步就可以到的地方马才可以攻击)
现在给出马的位置和卒子的目标点坐标,问卒子有几种方式可以到达目标点。
程序:
#include
using namespace std;
int xx[8]={1,2,2,1,-1,-2,-2,-1};
int yy[8]={2,1,-1,-2,-2,-1,1,2};
int a[100][100];
bool vis[100][100];
int sum,m,n,mx,my;
void dfs(int x,int y)
{
if (x== m && y==n) sum++;
else {
if (vis[x+1][y] && x+1<=m) dfs(x+1,y);
if (vis[x][y+1]&& y+1<=n) dfs(x,y+1);
}
}
int main()
{
memset(vi
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
