【题目描述】
到了难得的暑假,为了庆祝小白在数学考试中取得的优异成绩,小蓝决定带小白出去旅游~~
经过一番抉择,两人决定将T国作为他们的目的地。T国的国土可以用一个凸N边形来表示,N个顶点表示N个入境/出境口。T国包含N-2个城市,每个城市都是顶点均为N边形顶点的三角形(换而言之,城市组成了关于T国的一个三角剖分)。两人的旅游路线可以看做是连接N个顶点中不相邻两点的线段。
为了能够买到最好的纪念品,小白希望旅游路线上经过的城市尽量多。作为小蓝的好友,你能帮帮小蓝吗?
【输入说明】
每个输入文件中仅包含一个测试数据。
第一行包含两个由空格隔开的正整数N,N的含义如题目所述。
接下来有N-2行,每行包含三个整数 p,q,r,表示该城市三角形的三个顶点的编号(T国的N个顶点按顺时间方向从1至n编号)。
【输出说明】
输出文件共包含1行,表示最多经过的城市数目。(一个城市被当做经过当且仅当其与线路有至少两个公共点)
【样例输入】
6
1 2 4
2 3 4
1 4 5
1 5 6
【样例输出】
4
【数据范围】
4<=N<=200000
【分析】
太伤心了,省选用Map Set永远要被卡掉……
太开心了,BZOJ永远都是开着-O2……
由于其实吧……事实上……我的程序只能的六十分……所以就简要的说下吧。
以每个三角形为顶点建图,每个相邻三角形之间连一条边。
我们可以很机智的发现这其实是一棵树。
因为原多边形是凸多边形,树上两叶子之间的路径一定与连接两顶点的线段一一对应。
然后就是求树的最长链balabala~~
旅游路线优化:求凸多边形三角剖分的最长路径

这是一道关于旅游路线优化的问题,题目要求在凸N边形的三角剖分中找到一条经过最多城市的路径。通过建立三角形之间的边形成一棵树,并求解树的最长链来确定最优路线。题目提到了数据范围为4<=N<=200000,并指出使用特定数据结构可能会导致超时,建议使用邻接表或平衡树来解决。
最低0.47元/天 解锁文章
541

被折叠的 条评论
为什么被折叠?



