上一页 1 ··· 3 4 5 6 7 8 下一页
摘要: HDU 2602 Bone collector 题意: 已知 $N$ 个糖果的重量和价值. 我们有一个口袋, 最多可以装 $V$ 重量的糖果. 问口袋最多能放多少价值的糖果进去? 思路: 01背包问题 实现: #include <bits/stdc++.h> using namespace std; 阅读全文
posted @ 2022-12-22 00:08 zxr000 阅读(47) 评论(1) 推荐(0) 编辑
摘要: 思路: AC自动机模板题,最后拓扑优化即可。 注意:该题行末有空格会PE。该题是所有ASCII值,所以遍历的时候不能遍历到26,取字母的时候不能 -'a' 实现: #include <stdio.h> #include <string.h> #include <vector> using names 阅读全文
posted @ 2022-08-17 18:39 zxr000 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 思路: AC自动机模板题,最后拓扑优化即可,存下每个单词结尾的编号,通过编号找出它是否被遍历过。 注意:该题是多组案例。 实现: #include <stdio.h> #include <string.h> const int N = 2e6 + 5, M = 50005; int tr[M][26 阅读全文
posted @ 2022-08-17 18:33 zxr000 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 思路: AC自动机模板+拓扑优化。 因为当前单词可能包含别的单词,所以需要一直nex,但是本题会超时,所以思考优化这个过程。 我们知道,拓扑优化,可以将所有出现过的字符都标记上,这样的话,我们直接记录下,每个单词结尾的编号,最后看每个单词,结尾编号是否有标记,有标记则表示该单词存在文章中。 实现: 阅读全文
posted @ 2022-08-17 09:27 zxr000 阅读(29) 评论(0) 推荐(0) 编辑
摘要: const int N = 1e6 + 5; //tr就是多个模式串构造的fail树 //cnt标记该位置上有无单词 //id[i]:第i个模式串结尾所在的下标 int tr[N][26], idx = 1,nex[N], q[N],cnt[N],id[N]; char s[N]; void ins 阅读全文
posted @ 2022-08-14 16:57 zxr000 阅读(17) 评论(0) 推荐(0) 编辑
摘要: P5357 AC自动机(二次加强版) 题意: 给出一个文本串S和n个模式串,分别求出每个模式串在S中出现的次数。 思路: 多个模式串一个匹配串,标准的AC自动机,题目求每个模式串在文中出现的位置,可以在匹配文本串的时候,经过每个点都赋值为1,因为以该点为单词结尾一定存在该文本串中,但是因为可能该单词 阅读全文
posted @ 2022-08-07 18:04 zxr000 阅读(44) 评论(0) 推荐(0) 编辑
摘要: P3311 数数 题意: 我们称一个正整数 $x$ 是幸运数,当且仅当它的十进制表示中不包含数字串集合 $s$ 中任意一个元素作为其子串。例如当 $s = {22, 333, 0233}$时,$233$是幸运数,$2333、20233、3223$ 不是幸运数。给定 $n$和 $s$,计算不大于 $n 阅读全文
posted @ 2022-08-07 18:03 zxr000 阅读(70) 评论(0) 推荐(0) 编辑
摘要: P4052 文本生成器 题意: 给出n个单词,求至少包含其中一个单词的固定长度的文章的数量。 思路: 如果是求,怎么组成使得一个子串都没有的话,就很好求,如果当前位置到达了,单词末尾的话,就舍掉就可以了,但是,这里是求至少包含一个单词的固定长度的文章的数量,怎么办呢? 相当一个字符串,要么就是至少包 阅读全文
posted @ 2022-08-07 18:00 zxr000 阅读(31) 评论(0) 推荐(0) 编辑
摘要: P3121 Censoring G 题意: 给出一个字符串,给出一堆子串,每次删除左边第一个子串,输出最终通过删除没有子串的字符串。 思路: 因为是一对多,所以可以很自然的想到利用AC自动机。+栈,注意因为删除之后,当前到达的位置是现在栈顶所在的位置,所以还需要存储每个元素指到哪里。 实现: #in 阅读全文
posted @ 2022-08-07 17:59 zxr000 阅读(38) 评论(0) 推荐(0) 编辑
摘要: P3041 Video Game G 题意: 一个字符串由,ABC三个字符构成,给出$n$个由A,B,C组成的组合技,求怎么安排字符串可以使得组合技最多。 思路: 因为如果当前的后缀可以的话,现在也必然可以,所以在构建AC自动机的时候,要加上cnt[ne[t]]也就是可以的后缀数量,因为是一层一层的 阅读全文
posted @ 2022-08-07 17:58 zxr000 阅读(26) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 下一页