当前位置: 首页 > news >正文

Solutions - SAM / 广义 SAM 的题

P4248 [AHOI2013] 差异

求一个定值减去所有后缀的 lcp 的和。

翻转以下序列可以转化成所有前缀的最长后缀,然后建出 SAM 在 parent 树上,对于每一个节点求它是多少对节点的 LCA 即可。

P3181 [HAOI2016] 找相同字符

求两个串的本质不同公共子串数量。

和上题差不多。公共子串等价于两串前缀的公共后缀,那么建广义 SAM 然后子树相乘即可。

#include <bits/stdc++.h>
#define llong long long
#define N 800005
using namespace std;char a[N];
int pos[N], tag[N][3], son[N][32], trsiz = 1;
int fa[N], nxt[N][32], tsiz = 1;
int siz[N][3];
int len[N];
llong ans;inline int insert(int ch, int lst, int in1, int in2){int x = lst, cur = ++tsiz;len[cur] = len[lst]+1;siz[cur][1] += in1, siz[cur][2] += in2;while(x && !nxt[x][ch]) nxt[x][ch] = cur, x = fa[x];if(!x){fa[cur] = 1;return cur;}int y = nxt[x][ch];if(len[y] == len[x]+1){fa[cur] = y;}else{int z = ++tsiz;len[z] = len[x]+1;fa[z] = fa[y];for(int i = 1; i <= 26; ++i)nxt[z][i] = nxt[y][i];while(x && nxt[x][ch] == y)nxt[x][ch] = z, x = fa[x];fa[cur] = fa[y] = z;}return cur;
}vector<int> G[N];
inline void dfs(int u){for(int v : G[u]){dfs(v);siz[u][1] += siz[v][1];siz[u][2] += siz[v][2];}ans += 1ll*(len[u]-len[fa[u]])*siz[u][1]*siz[u][2];return;
}int que[N], he, ta;
int main(){for(int i = 1, l; i <= 2; ++i){scanf("%s", a+1);l = strlen(a+1);int x = 1;for(int j = 1; j <= l; ++j){if(!son[x][a[j]^96]) son[x][a[j]^96] = ++trsiz;x = son[x][a[j]^96];++tag[x][i];}}que[he = ta = 1] = 1;pos[1] = 1;while(he <= ta){int x = que[he++];for(int i = 1; i <= 26; ++i){if(!son[x][i]) continue;pos[son[x][i]] = insert(i, pos[x], tag[son[x][i]][1], tag[son[x][i]][2]);que[++ta] = son[x][i];}}for(int i = 1; i <= tsiz; ++i)G[fa[i]].push_back(i);dfs(1);printf("%lld", ans);return 0;
}
http://www.jsqmd.com/news/476092/

相关文章:

  • BGE-Large-Zh在智能客服场景应用:基于语义向量的FAQ精准匹配方案
  • 开源字体得意黑Smiley Sans:跨平台安装与设计应用指南
  • 2025环保绝缘橡套软电缆厂家推荐 产能与专利双优实力比拼 - 爱采购寻源宝典
  • ARM与FPGA异构系统实战:基于GPIO的RGB灯控制与Verilog/C代码详解
  • JMS583 USB3.2转PCIe硬盘盒硬件设计详解
  • 山西硕翔天成金属制品口碑如何,听听老客户怎么说 - mypinpai
  • 全国阻燃耐用橡套软电缆怎么选?10家优质厂家详细简介! - 爱采购寻源宝典
  • BGE-Large-Zh效果可视化:热力图颜色分级(红→黄→蓝)与阈值设定说明
  • 2025高强韧性橡套软电缆厂家推荐排行榜产能与专利双维度权威解析 - 爱采购寻源宝典
  • F3D在Windows平台的高效应用指南:从安装到性能优化
  • 2025环保耐用橡塑保温管厂家推荐河北锐得节能科技产能与专利双领先 - 爱采购寻源宝典
  • 实战教程:用Ollama部署translategemma-27b-it翻译图片文字
  • 开源字体跨平台安装极简教程:得意黑Smiley Sans零门槛部署指南
  • 探讨门窗胶费用问题,广东天剑产品价格性价比如何 - 工业品牌热点
  • Realistic Vision V5.1虚拟摄影棚效果展示:自然肤质/发丝/布料褶皱高清案例
  • 河北省智能光纤通信电缆怎么选?10家优质厂家详细简介! - 爱采购寻源宝典
  • 河北省专业防火橡塑保温管怎么选?10 家优质厂家详细简介! - 爱采购寻源宝典
  • Qwen All-in-One效果对比:与传统多模型方案相比优势在哪
  • Qwen3-4B极速文本模型+RAG:低成本搭建专属AI顾问
  • 全自动机械手臂品牌哪家强,鑫启航自动化脱颖而出 - 工业设备
  • 全国环保绝缘橡套软电缆怎么选?10家优质厂家详细简介! - 爱采购寻源宝典
  • 零基础玩转Seed-Coder-8B-Base:手把手教你快速部署代码生成模型
  • AudioSeal Pixel Studio部署案例:GPU加速下秒级音频指纹检测实操
  • 河北省环保节能岩棉板怎么选?10家优质厂家详细简介! - 爱采购寻源宝典
  • 2026年优质的土耳其投资移民解决方案推荐TOP3排行榜 - 行业观察日记
  • 国产GPU与ROCm架构的关系 国产GPU架构总结 ROCm 7.1 在 PyTorch 官网上被划掉(横线)直接支持
  • nlp_structbert_sentence-similarity_chinese-large快速部署:Docker镜像免配置运行Streamlit应用
  • 如何利用Unity实时调试工具提升开发效率
  • 国家超算中心 命令行是否会消耗算力卡,找不到显卡,是否需要退出
  • 基于DAMOYOLO-S与Qt框架:开发跨平台桌面级检测工具