- 题意:给定 \(N\) 个由小写字母组成的单词,保证这些单词中没有一个是另一个的前缀。现在需要将每个单词缩短成它的某个非空前缀,使得缩短后的单词集合中也没有一个单词是另一个的前缀,并且希望这些前缀尽可能短。问满足这个条件的每个单词的最短前缀。
- 题解:一定不要写 \(\text{AC}\) 自动机,会
RE
,暴力查找就可以了。
- 代码
- 题意:你有 \(N\) 个非负整数,并且这些整数的值是固定的,但是你不知道它们具体的值。你会得到一些关于这些整数的事实,并需要回答一些询问。
- 两种事实:
- \(\texttt{I p v}\):意味着第 \(p\) 个数的值是 \(v\)。
- \(\texttt{I p q v}\):意味着第 \(p\) 个数和第 \(q\) 个数的异或值是 \(v\)。
- 一种询问:
- \(\texttt{Q k p1 p2 ... pk}\):要求出第 \(p_1, p_2, \dots, p_k\) 个数的异或值。
- 题解:大模拟。十分巧妙的带权并查集,先对序列做前缀异或和,这样就转化为了 \(s_r⊕s_{l−1}=o\),也就是说 \(s_r\) 和 \(s_{l−1}\) 的距离为 \(o\),用带权并查集维护一下就行了。
- 代码
- 题意:给定若干区间,问将这些区间分成多少组使得每组内的区间两两不重叠,并给出具体的分组方案。
- 题解:线段树加二分加贪心。
- 代码
posted @
2024-08-26 17:07
liukejie
阅读(
7)
评论()
编辑
收藏
举报