题目大意:有N个戒指,M条线将N个戒指给连接了起来,线的长度是相等的,一条线只有左右两端有戒指,现在要求取出两个戒指,在线不断的情况下,将戒指往左右两边拉,问在同一水平高度的线最多有几条
解题思路:假设每条线的长度为1。两个点之间的线的数量在同一水平高度最多的情况,肯定是距离最短的时候,因为再加长的话,最短状态下的线会断。现在的难题是要统计在两点间有多少的线,将两点间最短距离的状况下所经过的点都记录下来,再判断这些点中的连线有多少条会在同一水平,可以一条一条的找,要在同一水平的话,必须满足原点到这两点的距离不等,为什么要不等呢,因为如果相等的话,就表示这两点是在同一竖直水平了,具体请看下面的图片:
同一水平线最多的情况必须是最短路的情况
统计多少条线的时候如果不判断f[s][a] != f[s][b]的话,那么在这种情况下会多出中间那条竖直的线段的