题目

Description

新日暮里中,比冲是一位博学的哲学教授。由于最近要帮学生准备考试,他决定弄个提纲给学生。然而同事van不服气,觉得这样学生就没有了自我思考,便在提纲中添加废话。
比冲很无奈,他想找回原稿。我们把现在的提纲看成是一个字符串S。他知道van只会在原稿结尾添加语句,也就是说,原稿是S的前缀。
现在比冲有m个询问,以此来找出原稿。每次给出两个位置l,r,问以l与r结尾的字符串中,有多少个字符串符合原稿的性质,最长的有多长。

Input

第一行一个只包含小写字母的字符串S,代表被改过的提纲。注意字符串从1开始编号。
第二行一个正整数m,即询问数。
接下来m行,每行两个正整数l,r,即位置。

Output

共m行,每行两个正整数a,b,a表示有多少个合法字符串,b为最长合法字符串长度。

Sample Input

输入1:
nguangdongren
2
5 13
6 10
输入2:
ababbaabbaababab
3
14 16
3 6
2 4

Sample Output

输出1:
1 1
1 2
输出2:
2 4
1 1
1 2

Data Constraint

30%:|S|<=300;m<=300
60%: |S|<=3000;m<=100000
100%:|S|<=30000;m<=100000
当我打这一题的题解时已经快要下课啦,为了不影响我的腐败宿舍生活,我决定很无耻的随便随便乱扯两句草草了事23333,我们处理出kmp中的fail数组,设fail[i]为i
的父亲,根节点的深度为零,用这样的方法建立一棵tree,对于每次的查询x,y我们用倍增找到他们的lca,然后输出他们lca的深度以及lca的位置就可以了。
贴代码(我感觉我的倍增打的好丑啊2333)

vardeep,next:array[0..30005]of longint;f:array[0..30005,0..20]of longint;bz:array[0..30005]of boolean;s:ansistring;i,j,k,l,n,x,y,len,p:longint;
procedure dfs(x:longint);
beginif deep[next[x]]=0 then dfs(next[x]);deep[x]:=deep[next[x]]+1;
end;
procedure kmp;
beginreadln(s);len:=length(s);for i:=2 to len dobeginwhile (j>0) and (s[j+1]<>s[i]) do j:=next[j];if s[j+1]=s[i] then inc(j);next[i]:=j;bz[j]:=true;f[i,0]:=j;end;
end;
procedure makefather;
beginfor j:=1 to p dofor i:=1 to len dof[i,j]:=f[f[i,j-1],j-1];
end;
beginkmp;deep[0]:=1;for i:=2 to len do if bz[i]=false then dfs(i);i:=1;p:=0;while i<len dobegini:=i*2;inc(p);end;if i>len then dec(p);makefather;readln(n);for i:=1 to n dobeginreadln(x,y);if deep[x]<deep[y] thenbeginl:=x;x:=y;y:=l;end;l:=deep[x]-deep[y];j:=1;k:=0;while l>0 dobeginif l and 1=1 then x:=f[x,k];inc(k);j:=j*2;l:=l div 2;end;k:=0;j:=1;while j<deep[x] dobeginj:=j*2;inc(k);end;if j>deep[x] then dec(k);for j:=k downto 0 doif f[x,j]<>f[y,j] thenbeginx:=f[x,j];y:=f[y,j];end;if x<>y then x:=f[x,0];writeln(deep[x]-1,' ',x);end;
end.

NOIPの模拟_2016_7_19_t2_弄提纲相关推荐

  1. 【NOIP模拟】弄提纲

    Description 新日暮里中,比冲是一位博学的哲学教授.由于最近要帮学生准备考试,他决定弄个提纲给学生.然而同事van不服气,觉得这样学生就没有了自我思考,便在提纲中添加废话. 比冲很无奈,他想 ...

  2. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  3. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  4. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  5. 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26

    背景 题目概括 T1 题面 分析 90分算法 满分算法 T2 题面 分析 部分分算法 满分算法 满分代码 T3 题面 分析 代码 总结 背景 这道题目是去年的金牌大佬闵梓轩在一年前出的一套noip模拟 ...

  6. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  7. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  8. NOIP模拟(10.22)T2 杆子的排列

    杆子的排列 题目背景: 10.22 NOIP模拟作业T2 分析:DP 定义状态dp[i][j][k]表示,目前枚举到第i大的数(即n - i + 1)那么显然如果这一个数放在左边,可以在左边被看到,放 ...

  9. Noip 模拟练习5

    Noip 模拟练习5 满分300,本人240.修正后300. 难度中等. 太空密码 Description 人类一直致力于探索地外文明,为此科学家们建造了一个巨大的射电望远镜 用于接收宇宙射线.一天从 ...

最新文章

  1. 【SLAM建图和导航仿真实例】(一)- 模型构建
  2. 基于ZKWeb + Angular 4.0的开源管理后台Demo
  3. arcgis将小于0的数值设置成0.01
  4. enumerate_Java Thread类的static int enumerate(Thread [] th)方法与示例
  5. HoloLens的显示分辨率有多少?
  6. 【无标题】提示用户输入用户名,然后再提示输入密码,如果用户名 是“admin”并且密码是“88888”,则提示正确,否则,如果 用户名不是admin还提示用户用户名不存在,如果用户名是
  7. FastDFS存储目录迁移方案
  8. Windows7 关闭UAC_频繁提示的权限放行窗口
  9. MySQL的安装(完整版)
  10. 华为系统gps定位服务器地址,很多手机的定位功能都叫GPS,为什么偏偏华为手机的定位功能叫“位置信息”?...
  11. C++ 基本编程工具 DevCpp5.4.0 + 经典 VC6.0 | 软件分享 |
  12. 微信小程序使用腾讯地图进行路线规划,坐标转地址,逆地理编码,计算目的地跟自身定位的距离
  13. 运行新项目的时候 出现 The type javax.servlet.http.HttpServletRequest cannot be resolved.
  14. 时间颗粒度相关数据处理
  15. 【Vue2注册登录界面】Vue2+elementUI编写一个登录页面,路由式开发,后台管理系统登录界面
  16. Java入坑指南,学Java需要具备哪些前提条件?
  17. 女孩子有什么颜值高的蓝牙耳机推荐?双12五款高音质游戏蓝牙耳机分享
  18. 速率、带宽与吞吐量的关系
  19. python八枚硬币问题
  20. Android读写日历,CalendarView

热门文章

  1. 学习单元测试 Mockito 一篇文章就够了
  2. java最长公共子序列算法_算法学习——java实现最长公共子序列
  3. 模拟五:STEMA 考试选择题模拟练习试卷(初级组)及答案 + 自我解题笔记
  4. 服务器出现 HTTP 400、404、500、502 错误原因及解决方法
  5. 手机端访问网页自动跳转至广告页面解决办法
  6. 零基础上手unity VR开发【配置PC端项目的实时调试】
  7. 文明6服务器位置,文明6城市建在哪里比较好 文明6城市选址攻略_游侠网
  8. python22期_python22期第五天 内容总结 (内置函数)
  9. linux 如何编辑.bashrc,技术|什么是 .bashrc,为什么要编辑 .bashrc?
  10. android studio配置被掠记