第十届蓝桥杯(国赛)——路径计数

Posted 业余算法学徒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十届蓝桥杯(国赛)——路径计数相关的知识,希望对你有一定的参考价值。

问题描述
从一个 5 x 5 的方格矩阵的左上角出发,沿着方格的边走,满足以下条件的路线有多少种?

  • 总长度不超过 12;
  • 最后回到左上角;
  • 路线不自交;
  • 不走出 5 x 5 的方格矩阵范围之外。

如下图所示,ABC 是三种合法的路线。注意 B 和 C 由于方向不同,所以视为不同的路线。


答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。


答案:206


题解
DFS:

重合路径

  1. (1, 1)(1, 2)(1, 1)
  2. (1, 1)(2, 1)(1, 1)
#include <iostream>
using namespace std;

int ans, step;
bool st[10][10];

int dx[4] = -1, 0, 1, 0;
int dy[4] = 0, 1, 0, -1;

void dfs(int x, int y, int step)

	if(step > 12) return;
	
	if(x == 1 && y == 1 && st[x][y] && step > 2)
	
		ans ++;
		return;
	
	
	for (int i = 0; i < 4; i ++)
	
		int a = x + dx[i], b = y + dy[i];
		if(a < 1 || a > 6 || b < 1 || b > 6 || st[a][b]) continue;
		
		st[a][b] = true;
		dfs(a, b, step + 1);
		st[a][b] = false;
	


int main()

	dfs(1, 1, 0);	
	cout << ans << endl;
	return 0;

CSDN 社区图书馆,开张营业! 深读计划,写书评领图书福利~

以上是关于第十届蓝桥杯(国赛)——路径计数的主要内容,如果未能解决你的问题,请参考以下文章

第十一届蓝桥杯(国赛)——玩具蛇

2019 第十届蓝桥杯大赛软件赛决赛,国赛,C/C++大学B组题解

第十一届蓝桥杯(国赛)——质数行者

第十一届蓝桥杯(国赛)——质数行者

蓝桥杯嵌入式——第十届蓝桥杯嵌入式国赛

蓝桥杯嵌入式——第十届蓝桥杯嵌入式国赛