摘要:
显然当\(n\)为偶数的时候比较好考虑,将互相交换的两组放在一起,无论什么情况,这两个组的最大值更小最小值更大是更优的,而且由于\((a+b)+(c+d)=(a+c)+(b+d)\),所以最大值更小当前仅当最小值更大,不会出现最大值更小最小值也更小的情况,所以直接枚举四种情况就好了 然后来考虑当\( 阅读全文
posted @ 2024-08-15 16:32
最爱丁珰
阅读(14)
评论(0)
推荐(0)
摘要:
看到\(c\)这么小肯定往集合方面去想,但是状压没想出来,此时一定不要忘了SOS DP 于是看这篇题解 \(S\)肯定是字符种类的集合,考虑枚举超集,当\(S\)的某一个超集以某种方式可以通过给定字符串导出,那么\(S\)就不行。考虑\(S\)不行的话会怎么样,将\(S\)的字符在给定字符串中全部标 阅读全文
posted @ 2024-08-15 15:14
最爱丁珰
阅读(78)
评论(0)
推荐(0)
摘要:
看这篇题解 怎么想到的:比如\(a_{i-1}<a_i\),那么我们循环到\(a_{i-1}\)的时候,肯定是先将\(a_{i-1}\)平方一直平方到一个边界,即再平方一次就超过\(a_i\)了,然后在这个时候去考察\(b_i\)和\(b_{i-1}\)的性质就好了,猜测两者肯定不会相差太多 阅读全文
posted @ 2024-08-15 14:25
最爱丁珰
阅读(12)
评论(0)
推荐(0)
摘要:
考虑暴力怎么做。一个很自然的想法就是枚举每个模式串,并将当前枚举到的模式串作为文本串,然后内层循环再依次枚举模式串,看每个模式串在文本串中出现了多少次 发现上述过程与AC自动机的匹配很像,于是建立AC自动机,将每个串都放在AC自动机上跑query,当前跑到的u就代表这个串的一个前缀,然后让j=u一直 阅读全文
posted @ 2024-08-15 10:50
最爱丁珰
阅读(9)
评论(0)
推荐(0)
摘要:
AC自动机上DP的典型题目 假设我们已经获得了最终的串,那么将这个串放在AC自动机上匹配的时候,一定是不会匹配到一个模式串的,我们考虑利用这一点来DP 设\(f[i][j]\)表示将经过修改后的文本串的前\(i\)个字符放在AC自动机上匹配中途没有匹配到模式串且当前匹配到AC自动机的\(j\)号节点 阅读全文
posted @ 2024-08-15 10:07
最爱丁珰
阅读(12)
评论(0)
推荐(0)
摘要:
结合我们对AC自动机的理解,我们发现令e[i]表示第\(i\)个节点所代表的模式串的编号,query函数中取消e[j] 1就停止循环的条件而是一直循环直到j为\(0\)即可;具体见洛谷代码 阅读全文
posted @ 2024-08-15 08:44
最爱丁珰
阅读(9)
评论(0)
推荐(0)
摘要:
具体讲解看OI-wiki就好了 构建字典图的那个位置,只用理解路径压缩就好了;在路径压缩完了之后,tr[u][i]表示的是状态\(u\)接上一个字符\(i\)所表示的字符串能够与\(Q\)所匹配的最大后缀长度。形式化地,设\(s=u+i\),令\(P\)为\(s\)的后缀集合,tr[u][i]=\( 阅读全文
posted @ 2024-08-15 08:42
最爱丁珰
阅读(16)
评论(0)
推荐(0)

浙公网安备 33010602011771号