有错误的地宫寻宝问题

本文介绍了一个使用递归实现的搜索算法,通过调整参数x、y及s来遍历一个二维数组a,并统计符合条件的路径数量。该算法适用于解决特定类型的路径寻找问题。
//虽然有错误,但此程序可以看出多个递归式放在一起的情况
#include <iostream> using namespace std; static int count=0; int x,y; int m,n,k; int a[50][50]; int t=0; void dfs(int x,int y,int s,int t) { if(x>m || y>n || s>k) return; if((x=m && y==n-1&& s==k)||(x=m-1 && y==n&& s==k) ) {count ++; return;} if(a[x][y]>t) { dfs(x,y+1,s,t); dfs(x+1,y,s,t); dfs(x,y+1,s+1,a[x][y]); dfs(x+1,y,s+1,a[x][y]); } else { dfs(x,y+1,s,t); dfs(x+1,y,s,t); } } int main(){ cin>>m>>n>>k; for(int i=0;i<m;i++) for(int j=0;j<n;j++) { cin>>a[i][j]; } dfs(0,0,0,0); cout << count; }

 

转载于:https://www.cnblogs.com/ewitt/p/6628137.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值