迷宫问题二 统计路径条数(dfs+回溯)

#include<iostream>
using namespace std;
char maze[100][100];
bool flag[100][100];
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
int m,n;
int sum=0;
void dfs(int x,int y)
{

	if(maze[x][y]=='T'){sum++;return ;}
	for(int i=0;i<4;i++)
	{
		int nx=x+dx[i];
		int ny=y+dy[i];
		if(flag[nx][ny]==0&&maze[nx][ny]=='*'||maze[nx][ny]=='T'&&nx>0&&ny>0&&nx<m+1&&ny<n+1)//逗比死了||写成了&&结果错到死
		{
			flag[nx][ny]=1;
			dfs(nx,ny);
			flag[nx][ny]=0;
		}
	}
}
int main()
{

	while(cin>>m>>n){

	memset(maze,0,sizeof(maze));
	memset(flag,0,sizeof(flag));
	for(int i=1;i<=m;i++)
		for(int j=1;j<=n;j++)
			cin>>maze[i][j];
	flag[1][1]=1;
	dfs(1,1);
	cout<<sum<<endl;
	}
}

时间: 2024-08-01 22:19:55

迷宫问题二 统计路径条数(dfs+回溯)的相关文章

HDU1688 Sightseeing(SPFA 求最短路与次短路的路径条数)可用作模板

Sightseeing Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 718    Accepted Submission(s): 293 Problem Description Tour operator Your Personal Holiday organises guided bus trips across the Bene

MySQL 分组后,统计记录条数

分组后,统计记录条数: SELECT num,count(*) AS counts from test_a GROUP BY num; 查询结果如下: 对num去重后的数量的统计: SELECT count(t.counts) FROM ( SELECT num,count(*) AS counts from test_a GROUP BY num ) AS t; SELECT count(DISTINCT num) AS count FROM test_a; 它俩结果一样,都是5:只是一个是子

PKU 3613 Cow Relays (指定路径条数的最短路)

题意:N,T,S,E:给你T条边,每条边两端都有编号和权值,问从S走到E允许走N条边,求最短路. foyld加矩阵快速幂思想. 注意要把边离散 #include <iostream> #include <fstream> #include <string.h> #include <algorithm> using namespace std; #define M 303 #define inf 0x3fffffff struct node { int a[M

hdu5794 A Simple Chess 容斥+Lucas 从(1,1)开始出发,每一步从(x1,y1)到达(x2,y2)满足(x2?x1)^2+(y2?y1)^2=5, x2&gt;x1,y2&gt;y1; 其实就是走日字。而且是往(n,m)方向走的日字。还有r个障碍物,障碍物不可以到达。求(1,1)到(n,m)的路径条数。

A Simple Chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2597    Accepted Submission(s): 691 Problem Description There is a n×m board, a chess want to go to the position (n,m) from the pos

2019年4399暑期实习算法题2,迷宫路径条数

实在太菜了,前段时间刚刚做过迷宫问题,也做过N皇后问题.今天笔试做这个题,虽然明白是迷宫问题加个回溯就可以了,但愣是没做出来.太菜了,下来又花了点时间才做出来. 问题:一个(X,Y)的迷宫,入口左上角,出口右下角,求出走出迷宫的路径的条数. # 算法: def solution(map, row, col, x, y, count): if x <= row-1 and y <= col-1 and map[x][y] == 0: if x == row-1 and y == col-1: r

MySQL 分组之后如何统计记录条数 gourp by 之后的 count()

SELECT count(*) FROM 表名 WHERE 条件 // 这样查出来的是总记录条 SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id //这样统计的会是每组的记录条数. 如何获得 第二个sql语句的总记录条数? 则是,如下: select count(*) from(SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id ) a ; 注意: 子查询方式,MySQL中子结果集必须使用别名,而Oracle中不需要特

mysql 分组之后统计记录条数

select count(*) from 表名 group by id 得到的结果如下 你会很神奇的发现你获取的不是总条数,而是每个组的条数,这很有作用,但是如果你要获取总条数的话就会很麻烦 select count(*)from( select count(*) from 表名 group by id ) a   得到的结果是:

数据库Group By类型语句统计记录条数

最近做一个分页查询查询的数据采用了group by来完成数据的查询处理,需要统计分组后的数据总数发现count(*) 聚集函数无法直接统计出分组后的总记录数. 查询SQL: SELECT count(*) FROM employeeexam, exam WHERE exam.examId = employeeexam.examId AND exam.`status`="已结束" GROUP BY employeeexam.examId, employeeexam.unitid 查询结果

asp gridview 统计总条数

先设置showfooter属性为true  再写一下代码 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { // 合计 if (e.Row.RowType == DataControlRowType.Footer) { e.Row.Cells[0].Text = "合计"; e.Row.Cells[1].Text = GridView1.Rows.Count.ToString()