ACM-ICPC 2018 焦作赛区网络预赛 H题 String and Times(SAM)

Now you have a string consists of uppercase letters, two integers AA and BB. We call a substring wonderful substring when the times it appears in that string is between AA and BB (A \le times \le BAtimesB). Can you calculate the number of wonderful substrings in that string?

Input

Input has multiple test cases.

For each line, there is a string SS, two integers AA and BB.

\sum length(S) \le 2 \times 10^6length(S)2×106,

1 \le A \le B \le length(S)1ABlength(S)

Output

For each test case, print the number of the wonderful substrings in a line.

样例输入复制

AAA 2 3
ABAB 2 2

样例输出复制

2
3

题目来源

ACM-ICPC 2018 焦作赛区网络预赛

题解:SAM模板题

参考代码:

 1 //H  求子串出现次数在k1=<num<=k2;
 2 #include <bits/stdc++.h>
 3 using namespace std;
 4 const int MAXN = 4e5+10;
 5 char ss[200005];
 6 const int LetterSize = 26;
 7 
 8 int tot, last,ch[MAXN][LetterSize],fa[MAXN],len[MAXN];
 9 int sum[MAXN],tp[MAXN],cnt[MAXN]; 
10 
11 void init()
12 {
13     last = tot = 1;
14     len[1] = 0;
15     memset(ch,0,sizeof ch);
16     memset(fa,0,sizeof fa);
17     memset(cnt,0,sizeof cnt);
18 }
19 
20 void add( int x)
21 {
22     int p = last, np = last = ++tot;
23     len[np] = len[p] + 1, cnt[last] = 1;
24     while( p && !ch[p][x]) ch[p][x] = np, p = fa[p];
25     if(p == 0) fa[np] = 1;
26     else
27     {
28         int q = ch[p][x];
29         if( len[q] == len[p] + 1)
30             fa[np] = q;
31         else
32         {
33             int nq = ++tot;
34             memcpy( ch[nq], ch[q], sizeof ch[q]);
35             len[nq] = len[p] + 1, fa[nq] = fa[q], fa[q] = fa[np] = nq;
36             while( p && ch[p][x] == q)  ch[p][x] = nq, p = fa[p];
37         }
38     }
39 }
40 
41 void toposort()
42 {
43     for(int i = 1; i <= len[last]; i++)   sum[i] = 0;
44     for(int i = 1; i <= tot; i++)   sum[len[i]]++;
45     for(int i = 1; i <= len[last]; i++)   sum[i] += sum[i-1];
46     for(int i = 1; i <= tot; i++)   tp[sum[len[i]]--] = i;
47 }
48 
49 
50 int main()
51 {
52 
53     int k1,k2;
54     while(scanf("%s",ss)!=EOF)
55     {
56         init();
57         scanf("%d%d",&k1,&k2);
58         long long ans=0;
59         for(int i=0,len=strlen(ss);i<len;i++) add(ss[i]-'A');
60         toposort();
61         for(int i=tot;i;i--)
62         {
63             int p=tp[i],fp=fa[p];
64             cnt[fp]+=cnt[p];
65             if(cnt[p]>=k1 && cnt[p]<=k2) ans+=len[p]-len[fp];
66         }
67         printf("%lld\n",ans);
68     }
69 
70     return 0;
71 }
View Code

 

  

转载于:https://www.cnblogs.com/songorz/p/9651909.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] css的height:100%和height:inherit之间有什么区别呢?

[css] css的height:100%和height:inherit之间有什么区别呢&#xff1f; 上周在微博上无节操吐槽了下inherit的段子&#xff0c;没想到回声还不少&#xff1a; 微博inherit无节操段子 不过inherit确实是个好东西&#xff0c;不仅节约代码&#xff0c;尤其与background之流打交…

http详解 请求报文格式和响应报文格式

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 HTTP 工作原理 超文本传输协议(Hypertext Transfer Protocol&#xff0c;简称HTT…

【LeetCode】拓扑排序

【207】 Course Schedule 排课问题&#xff0c;n门课排课&#xff0c;有的课程必须在另外一些课程之前上&#xff0c;问能不能排出来顺序。 题解&#xff1a;裸的拓扑排序。参考代码见算法竞赛入门指南这本书。 1 class Solution {2 public:3 bool dfs(const vector<vec…

Python2和Python3的兼容性写法

# python2 和 python3的兼容代码 try:# python2 中import cookielibprint(f"user cookielib in python2.") except:# python3 中import http.cookiejar as cookielibprint(f"user cookielib in python3.")

[css] 说说你对sass的嵌套规则的理解?

[css] 说说你对sass的嵌套规则的理解&#xff1f; 嵌套类型有&#xff1a;选择器嵌套、属性嵌套、伪类嵌套、群组选择器嵌套 。 .tenant-detail { background: transparent!important; .tenant-container { //1.选择器嵌套 width: 100%; > div { margin: 0{ //2.属性嵌套 相…

AGC027B Garbage Collector

一道很好的构造题原题链接 很快就能想到&#xff0c;捡每个垃圾的能量可以最后再算。然后&#xff0c;对于每个垃圾&#xff0c;在路上耗费的能量仅与它是第几个被捡的有关&#xff0c;于是我们考虑将垃圾分组。 首先&#xff0c;我们定义\(F(x,i)\)为某次从\(0\)出发&#xff…

[css] 你认为sass和less的最大区别是什么呢?你喜欢哪个?为什么?

[css] 你认为sass和less的最大区别是什么呢&#xff1f;你喜欢哪个&#xff1f;为什么&#xff1f; less 没有循环只有递归&#xff1b; less 没有 if 只有 when&#xff1b; sass 多个 function 很棒&#xff0c;否则只能堆变量了&#xff1b; less 拼接类名的字符串需加上 ~…

Python爬虫自学之第(零)篇——爬虫思路和request模块使用

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 爬虫思路 无思路不成器&#xff0c;如果你怎么想都想不出爬虫的原理&#xff0c;…

[css] css的哪个属性可以把所有元素或其父元素的属性重置呢?

[css] css的哪个属性可以把所有元素或其父元素的属性重置呢&#xff1f; all:unset个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

pycharm中更新pip版本的问题

经常使用Python的都知道pip&#xff0c;但有时候&#xff0c;下载某个模块不成功&#xff0c;提示信息如下 pytharm查看自带的pip版本 解决方式一&#xff1a; pytharm的terminal里卸载pip再安装pip 如果还不行&#xff0c;解决方式二 去你当前的项目路径下找到lib文件夹下的…

[css] 如何取消从父级元素继承下来的CSS样式呢?

[css] 如何取消从父级元素继承下来的CSS样式呢&#xff1f; 如果是恢复单个属性样式&#xff0c;例如font-size&#xff0c;可以使用 font-size: initial; 如果是将所有属性样式恢复为默认状态&#xff0c;可以使用 all: initial; 个人简介 我是歌谣&#xff0c;欢迎和大家…

小程序的wx.onAccelerometerChange

https://www.2cto.com/kf/201802/724174.html&#xff08;copy&#xff09; 也许有人会问&#xff0c;小程序中都是竖直app形态&#xff0c;要横竖屏判断有什么用?即使判断出了横屏状态&#xff0c;你能把小程序横过来?答案是不能的&#xff0c;但是判断当前设备处于横屏或者…

Python爬虫自学之第(②)篇——BeautifulSoup解析网页

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 学了requests&#xff0c;了解了伪装技巧后&#xff0c;终于能爬到些比较正常的网页…

[css] 说下你对css样式的这几个属性值initial、inherit、unset、revert的理解

[css] 说下你对css样式的这几个属性值initial、inherit、unset、revert的理解 initial&#xff08;初始&#xff09;、inherit&#xff08;继承&#xff09;、unset&#xff08;未设置&#xff09;、revert&#xff08;还原&#xff09; inherit可以继承父级元素的属性&#x…

Django通过中间件实现登录验证demo

前提&#xff1a;中间件版的登录验证需要依靠session&#xff0c;所以数据库中要有django_session表。 1 from django.conf.urls import url2 from django.contrib import admin3 from app01 import views4 5 urlpatterns [6 url(r^admin/, admin.site.urls),7 url(r^…

Python爬虫自学之第(③)篇——实战:requests+BeautifulSoup实现静态爬取

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 前篇全片都是生硬的理论使用&#xff0c;今天就放个静态爬取的实例让大家体验一下B…

[css] 如何解决css加载字体跨域的问题?

[css] 如何解决css加载字体跨域的问题&#xff1f; 刚才碰到一个css加载字体跨域问题&#xff0c;记录一下。 站点的动态请求与静态文件请求是不同的域名的。站点的域名为 www.domain.com&#xff0c;而静态文件的域名为 st.domain.com。 问题&#xff1a; 页面中加载css文件&…

django cookie、session

1.cookie (1)什么是cookie? 服务器让浏览器保存在浏览器本地的键值对 (2) 为什么要有cookie&#xff1f; 因为http协议无状态&#xff0c;每一次访问请求没有任何关系&#xff0c;无法保存状态 (3)cookie的特点&#xff1f; cookie是由服务器给浏览器设置的 在同一个浏览器中访…

Python爬虫自学之第(④)篇——强大的正则表达式,re模块

题外话&#xff1a; 《Pi Network 免费挖矿国外热门项目 一个π币大约值3元到10元》相信过去BTC的人&#xff0c;信不信未来的PI&#xff0c;了解一下&#xff0c;唯一一个高度与之持平的项目 如果把BeautifulSopu比喻成通过线索一步步接近目标的侦探的话&#xff0c;那么正则…

[css] 当使用@font-face的时候,为什么src中要加入local呢?

[css] 当使用font-face的时候&#xff0c;为什么src中要加入local呢&#xff1f; 网上的说法片面不一&#xff0c;CSDN和掘金都没见到正确回复&#xff0c;然后我在MDN找到了比较明确的说法。MDN的 font-face 这是一个CSS 规则 &#xff0c;它允许网页开发者为其网页指定在…