洞察探索如何通过创新技术提升直播软件应用的开发效率,助力企业成功实现数字化转型
790
2022-10-20
Fukuoka 2011 F - City Merger <路径压缩,位运算,AC自动机>
本题求用最短的长度字符串包含所给子串...由于存在多串匹配的问题...容易联想到AC自动机...
最多14个city..用14位的二进制数表示已经在串中否...对多串构造Trie树..进一步构造好AC自动机...可以用dp [ k ] [ i ] [ x ] 来表示长度为k的串..末字符落在trie树的i处..包含14个关系的x...但这样的复杂度..以最坏的考虑..会有240*240*16384=943718400=9*10^8...无法接受...
那么此时就要压缩路径了..由于Trie树中有很多无法产生更新的点...没必要dp时一次又一次的路过...所以将Trie树中x非0的点找出来...从每个点开始BFS...做出到其他有效点的最短距离...这样大大优化了dp过程...
Program:
#include
发表评论
暂时没有评论,来抢沙发吧~