在C ++中计算从源到目的地的所有可能的走行,并且恰好有k条边
在本教程中,我们将讨论一个程序,以找到从源到目的地恰好有k条边的步行次数。
为此,我们将提供一个图形以及源和目标的值。我们的任务是找到从源到目的地的所有可能路径,这些路径的边缘恰好为k。
示例
#include <iostream>
using namespace std;
#define V 4
//使用递归计数步行
int countwalks(int graph[][V], int u, int v, int k){
if (k == 0 && u == v)
return 1;
if (k == 1 && graph[u][v])
return 1;
if (k <= 0)
return 0;
int count = 0;
//移到相邻节点
for (int i = 0; i < V; i++)
if (graph[u][i] == 1)
count += countwalks(graph, i, v, k-1);
return count;
}
int main(){
int graph[V][V] = {
{0, 1, 1, 1},
{0, 0, 0, 1},
{0, 0, 0, 1},
{0, 0, 0, 0}
};
int u = 0, v = 3, k = 2;
cout << countwalks(graph, u, v, k);
return 0;
}输出结果
2
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短