点对统计,想点分治
设\(f[i][0/1]\)表示从根到\(i\)/从\(i\)到根,起点所需要的最小油量(起点加油终点不加油),\(g[i][0/1]\)表示对应情况按照最小油量出发,最后剩下的油量
剩下的就比较简单了,具体见代码
当然也可以看看这篇题解,这个转换也是比较显然的