摘要: 【题意】给定长度为m的匹配串B和长度为n的模板串A,求B在A中出现多少次。字符串仅由小写字母和通配符" * "组成,其中通配符可以充当任意一个字符。n<=3*10^5。 【算法】FFT 【题解】假设模板串的数组A用0~26代表所有字符,0为通配符,匹配串的数组B同理,那么用表示差异的经典套路: $$ 阅读全文
posted @ 2018-04-16 19:37 ONION_CYC 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 【题目】D. Huffman Coding on Segment 【题意】给定n个数字,m次询问区间[l,r]的数字的哈夫曼编码总长。1<=n,m,ai<=10^5。 【算法】哈夫曼树+莫队+分块 【哈夫曼树】哈夫曼树又称最优构造树,n个数字的哈夫曼树是含有n个给定权值叶子的点权路径和最小的二叉树。 阅读全文
posted @ 2018-04-16 14:50 ONION_CYC 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 【题目】F - Many Easy Problems 【题意】给定n个点的树,定义S为大小为k的点集,则f(S)为最小的包含点集S的连通块大小,求k=1~n时的所有点集f(S)的和取模924844033。n<=2*10^5。 【算法】排列组合+NTT 【题解】考虑每个点只会在k个点都在其一个子树时无 阅读全文
posted @ 2018-04-16 11:21 ONION_CYC 阅读(376) 评论(0) 推荐(0) 编辑