摘要:
题目大概是依次有n场派对,每场派对都有需要穿某套衣服去参加,可以同时穿多套衣服,就是一套套着一套,如果脱了的话就不能再穿上那套了,问最少需要几套衣服去参加完所有派对。 区间DP: dp[i][j]第i场到第j场派对需要最少的衣服 dp[i][i]=1 dp[i][j]=min(dp[i][j-1]+ 阅读全文
摘要:
AC自动机是一种多模式匹配的算法。大概过程如下: 而这题大概就是给几个模式串,一个主串,问有几个模式串被主串匹配。 AC自动机的模板题。有个可以优化的地方就是某个模式串被匹配了,下一次经过这儿就可以跳过了temp指针的过程了。 代码参考自kuangbin巨的博客,太简洁了(300+ms): 阅读全文
摘要:
题目给定一个字符串集合有几种方式拼成一个字符串。 dp[i]表示stri...strlen-1的方案数 dp[len]=1 dp[i]=∑dp[j](stri...strj-1∈SET) 用集合的字符串构造一棵Trie树,然后就可以在线性时间判断哪几个前缀字符串在集合里。 1 #include<cs 阅读全文
摘要:
我的做法是先建字典树,统计每个结点出现次数和相同字符串个数,每个结点对答案的贡献就是2*C(次数,2),然后再分别讨论相同字符串和不同字符串对答案的贡献。 另外这题主要就是Trie树的孩子兄弟表示法: 因为数据范围,4000个字符串每个字符串长度1000且字符的范围有62个,用孩子链表表示法最坏,4 阅读全文