[SDOI2017]天才黑客
天才黑客
题解
貌似挺简单的一道dijkstra
其实到最后发现就是建图跑一次dijk,就是建图有些恶心而已。
我们发现这道题本质上就是一个找最短路,关于每条边的距离它给了一个trie树来形容。
由于每条边的长度会受到它当前所带的字符串的影响,所以我们就顺理成章的想到了拆点。
明显不能把一个点拆成它所有的入边个点,看了看数据范围,空间炸了。
于是我们考虑另一种建图方式,来拆边:
我们可以把一个边拆成2个点,分别为它的入点与出点,它们之间连代表这条边边权的边。对于两条不同的边,若他们可以到达,及他们为(a,b)与(b,c),那么我们就在它们直接连一条为它们lcp的边。最后从超源向点1连接了的边连边即可。统计答案时就统计所有能到这个点的边的最小值即可。
不过这种图还是会被菊花图给炸掉。条边,不炸才怪。
我们貌似还得想办法优化。由于这是一个trie树上的字符串,当时一定会出现许多重复边权的边,因为最多只会

浙公网安备 33010602011771号