相似其实就是两个后缀的公共前缀。
根据题意可以对于两个后缀只算 LCP 的贡献,最后做一下后缀和与后缀最大值。
两个后缀的 LCP 就是后缀树上的 LCA,所以可以对于每个结点统计以它为 LCA 的贡献。
第一问计数比较简单。
第二问最大乘积,由于有负数,所以答案可能是最大值与次大值或最小值与次小值之积。
稍微维护一下即可。
以及注意特判一下大小不到 2 不可能有贡献的子树。
所以这题用后缀树来做就超水对吧……
代码:
1 |
|
相似其实就是两个后缀的公共前缀。
根据题意可以对于两个后缀只算 LCP 的贡献,最后做一下后缀和与后缀最大值。
两个后缀的 LCP 就是后缀树上的 LCA,所以可以对于每个结点统计以它为 LCA 的贡献。
第一问计数比较简单。
第二问最大乘积,由于有负数,所以答案可能是最大值与次大值或最小值与次小值之积。
稍微维护一下即可。
以及注意特判一下大小不到 2 不可能有贡献的子树。
所以这题用后缀树来做就超水对吧……
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment