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

SA后缀数组模板

int n, m, ork[MAXN], rk[MAXN], sa[MAXN], cnt[MAXN], id[MAXN], h[MAXN];
string s;void SA() {m = 26;for(int i = 1; i <= n; ++i) {cnt[rk[i] = s[i] - 'a' + 1]++;}for(int i = 1; i <= m; ++i) {cnt[i] += cnt[i - 1];}for(int i = n; i >= 1; --i) {sa[cnt[rk[i]]--] = i;}for(int w = 1; ; w <<= 1) {int tot = 0;for(int i = n - w + 1; i <= n; ++i) {id[++tot] = i;}for(int i = 1; i <= n; ++i) {if(sa[i] > w) {id[++tot] = sa[i] - w;}}fill(cnt, cnt + m + 1, 0);for(int i = 1; i <= n; ++i) {cnt[rk[i]]++;}for(int i = 1; i <= m; ++i) {cnt[i] += cnt[i - 1];}for(int i = n; i >= 1; --i) {sa[cnt[rk[id[i]]]--] = id[i];}int p = 0;for(int i = 1; i <= n; ++i) {ork[i] = rk[i];}for(int i = 1; i <= n; ++i) {if(ork[sa[i]] == ork[sa[i - 1]] && ork[sa[i] + w] == ork[sa[i - 1] + w]) {rk[sa[i]] = p;}else {rk[sa[i]] = ++p;}}if(p == n) {break;}m = p;}
}void geth() {for(int i = 1, j = 0; i <= n; ++i) {if(!rk[i]) {continue;}for(j = max(0, j - 1); s[i + j] == s[sa[rk[i] - 1] + j]; ++j) {}h[rk[i]] = j;}
}
http://www.jsqmd.com/news/186470/

相关文章:

  • 好写作AI:助力文献综述——效率提升与信息整合能力评估
  • 为什么“状态越集中”,RN 项目反而越卡
  • 为什么状态一集中,所有 RN 性能优化都会失效
  • AI开发工具----碾压 Bolt.new?Lovable:全栈开发的下一个“卷王”级神器深度评测
  • 揭秘Java应用性能拐点预测:如何用机器学习构建高精度运维模型
  • GitHub 热榜----86k+ Star!Awesome-LLM-Apps:可能是全网最好的 LLM 应用开发“实战圣经”
  • Elastic Stack梳理:深度解析Elasticsearch分布式查询机制与相关性算分优化实践 - 教程
  • 提升AI生成一致性:用lora-scripts定制固定输出格式的LLM模型
  • 假期网络钓鱼攻击中DocuSign伪装与虚假贷款诈骗的融合机制分析
  • JLink驱动固件升级步骤图解说明
  • 巴厘岛目的地婚礼推荐:唯一时光专做目的地婚礼的国内领先品牌深度解析——三亚目的地婚礼推荐/丽江目的地婚礼推荐/新疆目的地婚礼推荐/大理目的地婚礼推荐 - charlieruizvin
  • 网盘直链下载助手提速lora-scripts模型权重下载全过程
  • 计算机毕设java校园二手物品交易平台 基于Java的校园二手交易系统开发与实现 Java技术驱动的校园二手物品交易管理平台设计
  • 工业级打印系统中32位驱动主机的操作指南
  • android openCV 应用 (四)图像处理中的多尺度分析 - 指南
  • 计算机毕设java校园快递管理平台 基于Java的校园快递信息管理系统开发 Java技术驱动的校园快递管理平台设计与实现
  • 飞书多维表格管理lora-scripts项目进度与任务分配
  • 清华镜像源加速lora-scripts项目依赖库安装,告别下载超时
  • 【JavaDoc Markdown预览终极指南】:掌握高效文档编写的5大核心技巧
  • STM32CubeMX教程中的PWM生成配置通俗解释
  • STM32MP1双核配置实战案例:从零实现系统启动
  • 单片机驱动蜂鸣器:零基础实战操作指南
  • 1411.给 N x 3 网格图涂色的方案数
  • 自动标注+手动修正双模式:lora-scripts高效构建metadata.csv文件
  • 一点资讯个性化推送:根据用户画像发送lora-scripts资讯
  • 国产算力卡如寒武纪、昇腾能否运行lora-scripts?
  • 飞算JavaAI配置生成避坑指南,99%新手都会忽略的关键细节
  • 快速上手ARM Cortex-M ISR配置:新手入门步骤
  • 为什么你的 Spring Native 应用启动要3秒?这5个关键优化点你必须掌握
  • 国内用户福音:huggingface镜像网站助力lora-scripts模型拉取