今天写了道最短路的题,错了很多次,就想把自己错的地方和应该注意的地方贴出来。
TP POJ-3268
题意:很多区域中的一个区域开了个Party,其它区域的奶牛都需要通过一些单行道去参加Party,参加完成后还需要走回原来的区域,每个奶牛走的路都是最短距离,我们需要求出走路最长的奶牛走的距离。
这题明显就是最短路板子题,可是如果只是板子题的话就没必要写它了,我当时卡这题也卡了好久。
起初,我直接背板子,然后直接超时,然后我才意识到我想当然的敲了三重循环。然后就想怎么减一层循环,就另开了一个dis数组去存回来的路,这样的话两重循环就够解这道题了。可是答案错误后来找到原因了,是把回来的路和去的路存反了。但是这依然答案错误。之后发现纰漏之处在于bk数组也是需要两个的,来回的路的bk数组不可共用,这么一来,题目就过了。
以上是我写这题时的一些经过,如果以上依然没有解决问题,建议在最短路代码下输出你的往返两次的ds数组,看看是否出现奇怪的东西。
按样例来说,正向的数组内容应为1 0 3 7
,返回的数组为4 0 6 3
。
如果ds内容没有问题,依然ac不了,那应该就是板子哪里有问题或者在存反向时没有理清边与边之间的关系,就只能再认真检查一下代码了。
POJ-3268 Silver Cow Party
最新推荐文章于 2023-07-07 15:49:51 发布