题意:给n个源代码串,m个病毒串(都是01串),求最短的串,包含所有源代码串,但不包含任何病毒串,输出这个最短串的长度。
(题目没说如果不存在该输出什么,那应该就是保证一定存在吧。即没有任何一个病毒串是源代码串的子串)
思路:将所有串都加入自动机中,预处理出所有代码串之间的最短路(不经过病毒串的最短路),然后问题就变成了从trie树根节点开始,经过每个代码串结点各一次的最短路径,类似于TSP,用状压dp可解。
#include #include #include #include #include #include #include #include #include #include
版权声明:本文为博主原创文章,未经博主允许不得转载。