SAM真让人头秃。

题面
https://www.luogu.org/problemnew/show/P4770

首先考虑 l=1,r=∣S∣的做法
如果对于ION2018的子串不用判重的话,对ION2017建SAM跑一遍就好了.
此时ION2018的每一个前缀对答案的贡献为前缀长度-匹配长度。
考虑怎么去重。
这应该算是SAM比较常用去重的一种套路。

对ION2018建出SAM。
原本就算答案的方式是枚举子串的右端点的位置。
现在改为枚举枚举SAM上的节点。
由于对于每种串要只计算一次。
先计算出每个right集合再ION2018第一次出现的位置tag[i]。(这里只是选择多个相同的串中的一个作为代表元素而已)
再对ION2018这个字符串的每一个位置计算出与ION2017的最大匹配长度lim[i]。
然后可以这么计算答案:

转载于:https://www.cnblogs.com/Creed-qwq/p/10163935.html

[NOI2018]你的名字(68pts)相关推荐

  1. UOJ #395 BZOJ 5417 Luogu P4770 [NOI2018]你的名字 (后缀自动机、线段树合并)

    NOI2019考前做NOI2018题.. 题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=5417 (luogu) http ...

  2. [NOI2018]你的名字

    SAM写的太不熟练了~~SAM上的线段树合并也不熟练~~~ 调了半天样例 题目大意: 给定一个S,Q次询问,每次给出T,l,r, 求对于S[l,r],属于T的子串却不属于S[l,r]的子串有多少个 看 ...

  3. NOI2010~NOI2018选做

    [NOI2010] [NOI2010]海拔 高度只需要0/1,所以一个合法方案就是一个割,平面图求最小割. [NOI2010]航空管制 反序拓扑排序,每次取出第一类限制最大的放置,这样做答案不会更劣. ...

  4. 一个用SAM维护多个串的根号特技

    一个用SAM维护多个串的根号特技 基本介绍 在多个串的字符串题中,往往会出现一类题需要用到某个子串是否在一些母串中出现.此时对于 \(\text{parent}\) 树的 \(\text{right} ...

  5. oracle退出本循环,Oracle,跳出游标循环

    1,跳出游标的循环,不执行遍历了. 方法一:goto for c_row in 游标 loop if 条件 then dbms_output.put_line('测试跳出循环'); goto brea ...

  6. 【NOI2018】你的名字【后缀自动机】【可持久化线段树合并】【乱搞】

    题意:给一个串 SSS,qqq 次询问,每次给定串 TTT 和 l,rl,rl,r ,求有多少个本质不同的串是 TTT 的子串而不是 Sl-rS_{l\dots r}Sl-r​ 的子串. ∣S∣≤5× ...

  7. 适合计算机应用的班群名称,班级同学群名字大全

    很多人现在都是一个班级建一个群,以便大家沟通交流,有什么事大家群里一说很方便,没事还可以吹吹牛B策策谈,那么同学班级群用什么样的名字好呢,在此起名网为大家收集整理了班级同学群名字大全.来看看吧. 最新 ...

  8. 2020卫星参数表大全_王者荣耀比较秀的名字 2020年比较骚气比较浪的王者荣耀名字大全...

    游戏中该起什么样的名字,才能让其他玩家很快的记住,从而达到认识更多玩家,认识到更多的朋友,达到交友目的. 2020年比较骚气比较浪的王者荣耀男性玩家名字大全如下: 骚里骚气 闷里闷气 孤独患者 洁癖患 ...

  9. C++:名字空间的使用

    首先明确一下要使用名字空间的目的是为了防止名字冲突. 一.访问名字空间中元素的3种方式: 1.可以自己去定义一些名字空间: namespace NameSpace1 {void fun(){}//该f ...

  10. spring 数组中随机取几个_别给孩子取这三种名字!截止年末,名字中的这几个字已经烂大街了...

    随着时代的进步,科技的发展,人们的生活水平不断,提高,许多的家庭都在拥有了不错的生活条件之后选择培养自己的下一代,随着宝宝的到来让整个家庭变得更加幸福,然而,许多家长却在给宝宝起名字这件事上放了愁,对 ...

最新文章

  1. oracle触发器初始化,oracle – 触发器无法初始化变量
  2. 如何选取合适的前端动效方案?
  3. 60条令你大吃一惊的小常识,很有用
  4. OpenCV坎尼探测器Canny Detector的实例(附完整代码)
  5. 02 | 系统可用性:没有故障,系统就一定是稳定的吗?
  6. Cisco配置单臂路由及静态路由
  7. pip install cryptography error
  8. EXCEL 打开 csv乱码问题
  9. Docker Swarm建立服务器集群
  10. MTK PerfService介绍
  11. 构造函数为什么不能是虚函数
  12. 使用autogen工具生成Makefile遇到问题解决思路
  13. 兰州网络教育计算机基础考试,2017年兰州事业单位公共基础备考:计算机基础知识...
  14. HDF5数据模型介绍及h5py
  15. Windows窗口程序
  16. java求100以内的素数
  17. 修复windows系统引导
  18. python转xlsx为xls 或重新保存xls
  19. IT运维服务外包管理的两种模式
  20. 2018 Mossad Challenge

热门文章

  1. idea中本地git如何切换分支
  2. 多关键字排序的c语言编程,常见排序——“计数排序(三关键字)”的源程序(C语言版)...
  3. c++获取ctrl+v内容_处理文档时,快捷键「Ctrl+E」的 8 大妙用
  4. Java中栈和队列的类
  5. LayaAir Graphics.drawTexture 显示与切换图片
  6. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-1.单机和分布式应用的登录检验讲解...
  7. js复制隐藏域中的文字
  8. [HAOI2007] 修筑绿化带
  9. 【转】使用Python的Requests库进行web接口测试
  10. java基础学习及总结