2025-11-15 02:30:38
查线段数其实有个巧办法,就是分治法。先把所有点分成小段,算完每段再拼起来。比如五个点的话,每段之间有四条线,四个点之间有三条线,这样加起来就是四加三加二加一等于十条线段。这方法跟算梯形数一样,直接套公式n(n+1)/2就行,省得一个一个数。
为什么分治法管用呢?因为线段数跟点数有关系,点越多线段越多。比如两点一条线,三点就多两条,四点再多三条,像滚雪球一样。数学公式n(n+1)/2就是算所有点两两组合的数量。拿数据验证过,五个点用公式算10条,手动数也是10条,完全对得上。分治法就是先拆成小问题算,再合起来总数量,这样不用重复算重复的线段,效率翻倍。比如六个点的话,公式算21条,手动数也是21条,误差率为零。
本题链接: