在Python中计算包括给定边的独特路径数的程序
假设我们有一个边的列表,形式为(u, v),它们表示一棵树。对于每条边,我们必须找到包括该边的总唯一路径数,按照输入中给定的顺序。
所以,如果输入是这样的边= [[0,1],[0,2],[1,3],[1,4]]
那么输出将是[6,4,4,4]。
为了解决这个问题,我们将执行以下步骤 –
- adj:从给定的边缘建立邻接列表
-
count:一个空映射
-
定义一个函数dfs()。这将采取x,parent
-
count [x]:= 1
-
对于每个adj [x]中的nb,请执行以下操作 –
- 如果nb与parent相同,则继续
-
count [x] = count [x] + dfs(nb,x)
-
返回计数[x]
-
从主方法执行以下操作 –
-
dfs(0,-1)
-
ans:一个新列表
-
对于边界中的每个边缘(a,b),请执行以下操作 –
- x:=计数[a]和计数[b]的最小值
-
在ans末尾插入(x*(count[0] – x))
-
返回ans
示例
让我们看一下以下实现,以更好地理解 –