这题做了好久, T T。。。昨晚雏形都了,不过有BUG,昨晚用手机查到了个BUG,挺高兴的,今天中午乐呵呵地来调。。。
下午第一节课听说课,逃了,调到第二节课快开始还没调完T T。。。去上了一小节课,回来继续调。。。继续找bug。。。BUG无限啊。。
忽然发现dijkstra中似乎不用让起点入队,改掉之后,变成SF了。。无语啦,似乎是队列空的时候还取top()了,测试了一下,果然是。就把最外层循环改成队列不为空了。
想了想,因为这个里面不是纯的最短路,所以有可能内层循环结束也不一定有一个会入队 = =。。。队列里的节点数就达不到n次了。
改了,AC 了,激动!!!!不过用了200+MS,挺长的。百度+google了下,发现这个http://ac-gg.xanga.com/708507880/item/,好短啊啊好短啊啊啊。。。= =。。。用得繁体字,没有仔细看。不懂的童鞋们可以看下这个图,还是很有代表性的,不过题中只有水平或者竖直的线段。
题意,给你一些线段,要么竖直,要么水平,求从第一个线段到第二条线段搭梯子长度的最小长度。
以前做过类似的题,但是这题的建图很麻烦。因为两条线段的最短距离不好计算。有下面几种情况。( = = 这几次题解都得画图 T T )
![](http://hi.csdn.net/attachment/201103/29/6627258_1301393363Aofj.png)
这几种情况考虑周到,就没问题了^ ^。
这题好多次想去看别人的。。还有想去看以前自己的代码。。不过还是忍住木有看^ ^嘻嘻。
其他不多说了,本来没啥的题,就是建图问题而已。