博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
路径计数(回溯法)
阅读量:739 次
发布时间:2019-03-21

本文共 604 字,大约阅读时间需要 2 分钟。

【问题描述】

从一个5x5 的方格矩阵的左上角出发,沿着方格的边走,满足以下条件的
路线有多少种?
• 总长度不超过12;
• 最后回到左上角;
• 路线不自交;
• 不走出5x5 的方格矩阵范围之外。

#include 
using namespace std;int vis[6][6];int dx[4]={
0,1,0,-1};int dy[4]={
1,0,-1,0};int cnt = 0;void dfs(int i,int j,int d){
if(d>12) return; if(i==0&&j==0) {
cnt++; return; } vis[i][j]=1; for(int k=0;k<4;k++) {
int ni = i+dx[k]; int nj = j+dy[k]; if(ni<0||ni>5||nj<0||nj>5||vis[ni][nj]==1) continue; dfs(ni,nj,d+1); } //回溯 vis[i][j]=0;}int main(){
dfs(0,1,1); dfs(1,0,1); cout<

转载地址:http://xgxgz.baihongyu.com/

你可能感兴趣的文章