假设我有这个有向无环图(DAG),其中每个节点(除了底行中的节点除外)有一个有向边到它下面的两个节点:
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Run Code Online (Sandbox Code Playgroud)
我需要找到通过此DAG的路径,其中节点权重的总和最大化.您只能从此树中的节点向左或向右对角移动.因此,例如,7,3,8,7,5将在此树中给出最大路径.
输入文件包含以这种方式格式化的DAG
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Run Code Online (Sandbox Code Playgroud)
我的问题是,什么算法最好找到最大路径,以及如何在C++中表示这个树?
节点权重是非负的.
jro*_*rok 13
我用一个矢量向量来表示这个三角形int.
从底行开始,比较每对相邻的数字.拿一个较大的一个并将其添加到该对上方的数字:
5 3 13 3
\
7 8 6 becomes 7 8 6
^ ^
13 3 13 11
/
Next iteration 7 8 6 becomes 7 8 6 etc.
^ ^
Run Code Online (Sandbox Code Playgroud)
按照自己的方式到达顶部,完成后,三角形的尖端将包含最大的总和.
| 归档时间: |
|
| 查看次数: |
2473 次 |
| 最近记录: |