摘要: 题目贴图: 题解: AC自动机/Trie图+矩阵乘法。 首先构建矩阵,因为有: f[ i ] = Σ f[ j ] * g[ j ][ i ] 然后就搞成矩乘了。 把邻接矩阵自乘足够多次就行了。 代码: 阅读全文
posted @ 2018-11-24 20:16 LiGuanlin 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 求包含n个串的长度最短,且字典序最小的串。 题解: AC自动机/Trie图 + bfs。 我用的是Trie图。 把所有串扔到Trie树上,Trie图建fail指针。 然后的bfs搜索路径。 遍历时从小到大,可以保证字典序最小。 状态中压入各个子串出现过/为出现过。 代码: 阅读全文
posted @ 2018-11-24 16:27 LiGuanlin 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给出n个串(总长<=30000),求是否有一个无限长的串,使得不包含任何一个给出串。 题解: 建trie图,然后搜索。 搜索时如果这个点搜过以后无法return true,那么我们可以标记这个点。 只要再次搜到这个点直接return false 代码: 阅读全文
posted @ 2018-11-24 11:09 LiGuanlin 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 喜欢钻研问题的JS 同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法。 例如‘JSOI07’,可以读作: JSOI07 SOI07J OI07JS I07JSO 07JSOI 7JSOI0 把它们按照 阅读全文
posted @ 2018-11-24 09:52 LiGuanlin 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 题目描述: https://www.luogu.org/problemnew/show/P4015 题解: 建图跑最小费用流。 对于最大费用,我们可以重新建边,并把权值变成相反数。 也称 最大费用最大流。 代码: 阅读全文
posted @ 2018-11-24 09:09 LiGuanlin 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题目描述:你有一个#。有8个不同方向可以动,编号依次为A-H。求使其中心8个块数字变成相同时,最短字典序最小的字符串以及中心的数字。 题解: 对于这种状态极为发散的搜索,我们可使用A*。而这道题要求最短,我们可以采用IDA*。 估价函数h=8-(中心块上出现最多的数的出现次数)。 因为每动一次只踢出 阅读全文
posted @ 2018-11-24 07:45 LiGuanlin 阅读(114) 评论(0) 推荐(0) 编辑