2018百度之星程序设计大赛 - 资格赛 1002 子串查询

子串查询

 

 Accepts: 1262

 

 Submissions: 5335

 Time Limit: 3500/3000 MS (Java/Others)

 

 Memory Limit: 262144/262144 K (Java/Others)

Problem Description

度度熊的字符串课堂开始了!要以像度度熊一样的天才为目标,努力奋斗哦!

为了检验你是否具备不听课的资质,度度熊准备了一个只包含大写英文字母的字符串 A[1,n] = a_1 a_2 \cdots a_nA[1,n]=a​1​​a​2​​⋯an​​,接下来他会向你提出 qq 个问题 (l,r)(l,r),你需要回答字符串 A[l,r] = a_l a_{l+1} \cdots a_rA[l,r]=al​​al+1​​⋯ar​​ 内有多少个非空子串是 A[l,r]A[l,r] 的所有非空子串中字典序最小的。这里的非空子串是字符串中由至少一个位置连续的字符组成的子序列,两个子串是不同的当且仅当这两个子串内容不完全相同或者出现在不同的位置。

记 |S|∣S∣ 为字符串 SS 的长度,对于两个字符串 SS 和 TT ,定义 SS 的字典序比 TT 小,当且仅当存在非负整数 k(\leq \min(|S|,|T|))k(≤min(∣S∣,∣T∣)) 使得 SS 的前 kk 个字符与 TT 的前 kk 个字符对应相同,并且要么满足 |S| = k∣S∣=k 且 |T| > k∣T∣>k,要么满足 k < \min(|S|,|T|)k<min(∣S∣,∣T∣) 且 SS 的第 k+1k+1 个字符比 TT 的第 k+1k+1 个字符小。例如 "AA" 的字典序比 "AAA" 小,"AB" 的字典序比 "BA" 小。

Input

第一行包含一个整数 TT,表示有 TT 组测试数据。

接下来依次描述 TT 组测试数据。对于每组测试数据:

第一行包含两个整数 nn 和 qq,表示字符串的长度以及询问的次数。

第二行包含一个长为 nn 的只包含大写英文字母的字符串 A[1,n]A[1,n]。

接下来 qq 行,每行包含两个整数 l_i,r_ili​​,ri​​,表示第 ii 次询问的参数。

保证 1 \leq T \leq 101≤T≤10,1 \leq n,q \leq 10^51≤n,q≤10​5​​,1 \leq l_i \leq r_i \leq n1≤li​​≤ri​​≤n

Output

对于每组测试数据,先输出一行信息 "Case #x:"(不含引号),其中 x 表示这是第 xx 组测试数据,接下来 qq 行,每行包含一个整数,表示字符串 A[l,r]A[l,r] 中字典序最小的子串个数,行末不要有多余空格。

Sample Input

1
2 3
AB
1 1
1 2
2 2

Sample Output

Copy

Case #1:
1
1
1

前缀字母A~Z的个数,复杂度(O(n))

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <map>
#include <set>
#include <stack>
#define fora(i,a,b) for(i=a;i<b;i++)
#define fors(i,a,b) for(i=a;i>b;i--)
#define fora2(i,a,b) for(i=a;i<=b;i++)
#define fors2(i,a,b) for(i=a;i>=b;i--)
#define PI acos(-1.0)
#define eps 1e-6
#define INF 0x3f3f3f3ftypedef long long LL;
typedef long long LD;
using namespace std;
const int maxn=1e5+11;
char str[maxn];
int qz[maxn][33];
int main()
{int T,t=0,len;scanf("%d",&T);while(T--){int n,q;scanf("%d%d%s",&n,&q,str);int i,j;len=strlen(str);fora(i,0,len){fora(j,0,26){qz[i+1][j]=qz[i][j];}qz[i+1][str[i]-'A']++;}printf("Case #%d:\n",++t);while(q--){int L,R;scanf("%d%d",&L,&R);fora(i,0,26){//printf("****%c %d %d\n",i+'A',qz[R+1][i],qz[L][i]);if(qz[R][i]-qz[L-1][i]>0){printf("%d\n",qz[R][i]-qz[L-1][i]);break;}}}}return 0;
}

 

转载于:https://www.cnblogs.com/107acm/p/9428305.html

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

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

相关文章

mysql sleep详解_MySQL中sleep函数的特殊现象示例详解

前言MySQL中的系统函数sleep&#xff0c;实际应用的场景不多&#xff0c;一般用来做实验测试&#xff0c;昨天在测试的时候&#xff0c;意外发现sleep函数的一个特殊现象。如果在查询语句中使用sleep函数&#xff0c;那么休眠的时间跟返回的记录有关。如下测试所示&#xff1a;…

使用maven构建dubbo服务的可执行jar包

maven 项目结构 <build><!-- 使用dubbo推荐的方法&#xff0c;打包成jar&#xff0c;调用main方法启动 --><finalName>admin-service-user</finalName><resources><resource><targetPath>${project.build.directory}/classes</ta…

计算机网络安全应具备的功能,2016计算机专业知识:网络系统安全体系具备功能攻击方法...

【导读】为了帮助广大考生更好的备考&#xff0c;中公事业单位考试网提供2016年计算机专业知识《网络系统安全体系具备功能攻击方法》学习&#xff0c;为考生定制计算机基础知识复习计划。一、网络系统安全体系具备功能1.访问控制;2.检查安全漏洞;3.攻击监控;4.加密通讯;5.认证…

Linux的标准I/O和管道

标准输入输出与管道 1、标准输入和输出程序&#xff1a;指令数据指令&#xff1a;计算、加减乘除数据&#xff1a;输入数据、输出数据2、在Linux中每一个打开的文件都会分配一个当前进程中唯一的文件描述符&#xff0c;用来标识文件的状态fd:file descripor3、Linux提供给程序…

页面url带参数_微信小程序云开发教程微信小程序的JS高级页面间数据传递

同学们大家好&#xff0c;我是小伊同学&#xff0c;上一节课我们讲解了全局数据的读写方法&#xff0c;那么在页面间同样需要数据交互&#xff0c;今天我们就来学习这部分内容。在微信小程序中&#xff0c;我们常常需要将数据在页面之间进行传递&#xff0c;比如用户的身份信息…

软件测试员对英语,软件测试工程师英语面试题

以下是软件测试工程师部分英语面试中的参考回答&#xff0c;仅提参考&#xff1a;Interview English&#xff1a;一&#xff0c;Why are you interested in working for our company?1。Because your company has a good sales record.2。Because your operations are global,…

OpenGL——二维几何变换

平移、旋转、缩放的实现 #include<iostream> #include <math.h> #include<Windows.h> #include <GL/glut.h>using namespace std;GLsizei winWidth 600, winHeight 600;GLfloat xwcMin 0.0, xwcMax 225.0; GLfloat ywcMin 0.0, ywcMax 225.0;cla…

在Eclipse 中打开当前文件夹

原文连接&#xff1a;https://www.cnblogs.com/panie2015/p/5985053.html ------------------------------------------------------------------------ 最近试过好多次&#xff0c;安装插件来 在Eclipse 中打开当前文件所在文件夹&#xff0c;结果总是不甚如意。 烦躁了&…

清华大学计算机系主任应明生,清华大学计算机科学与技术系导师简介:应明生...

对考生而言&#xff0c;充分了解高校、专业以及师资情况是一项最基础、最关键的工作。以下是中公考研小编为大家整理的“清华大学计算机科学与技术系导师简介&#xff1a;应明生”的相关信息&#xff0c;希望对同学们有所帮助。姓名&#xff1a;应明生职称&#xff1a;教授邮件…

在VS2013平台下如何快速解决c++代码内存泄漏问题

在学习FPS3000人脸关键点定位算法时&#xff0c;发现github上的源码&#xff0c;存在大量的内存泄漏问题&#xff0c;在训练的时发现内存一直在增长&#xff0c;测试的时候也存在内存无法彻底释放的问题。 一直以为是存放模型参数vector<class>结构的问题&#xff0c; 采…

python请简述构造函数和析构函数的作用_python – 构造函数和析构函数如何工作?...

我正在尝试理解这段代码&#xff1a;class Person:Represents a person population 0def __init__(self,name)://some statements and population 1def __del__(self)://some statements and population - 1def sayHi(self):grettings from personprint Hi My name is %s % s…

服务器应用日志清理,Linux下Tomcat日志定期清理

服务器上的tomcat的catalina.out文件越来越大&#xff0c;查看起来很不方便&#xff0c;以前每次都是想起来的时候手工清理一下(cat /dev/null > catalina.out)&#xff0c;后来发现了logratate这个工具&#xff0c;Ubuntu下的mysql,nginx好像也是用的这个工具还定期整理log…

dubbo简易监控中心安装

dubbo简易监控中心也是dubbo服务应用。 为什么叫“简易”&#xff1f;这是阿里巴巴定义的&#xff0c;意思是功能不多但够用&#xff0c;可以自己扩展。 1、下载dubbo源码&#xff0c;要与使用的dubbo版本一致。 https://github.com/alibaba/dubbo/releases 2、maven instal…

前端架构设计1:代码核心

现在的前端领域, 随着JS框架, UI框架和各种库的丰富, 前端架构也变得十分的重要. 如果一个大型项目没有合理的前端架构设计, 那么前端代码可能因为不同的开发人员随意的引入各种库和UI框架, 导致代码量变得异常臃肿, 最终结果可能是代码变得无法维护, 页面性能低下,不得已只能推…

如何用法向量求点到平面距离_支持向量机(SVM)

最近完成的一个项目用到了SVM&#xff0c;之前也一直有听说支持向量机&#xff0c;知道它是机器学习中一种非常厉害的算法。利用将近一个星期的时间学习了一下支持向量机&#xff0c;把原理推了一遍&#xff0c;感觉支持向量机确实挺厉害的&#xff0c;尤其是核函数变换可以把一…

TortoiseSVN 1.9.5安装 与 Eclipse4.4.2中安装SVN插件 图解详解

原文链接&#xff1a;http://blog.csdn.net/chenchunlin526/article/details/54631458 Eclipse svn 插件官网&#xff1a;http://subclipse.tigris.org/ Eclipse svn 插件更新网站&#xff1a;https://github.com/subclipse/subclipse/wiki -------------------------------…

虚拟服务器关机返回用户信息,在Linux服务器关机前向用户显示一条自定义消息...

在先前的文┞仿中&#xff0c;我们说清楚明了 Linux 中 shutdown、poweroff、halt、reboot 敕令的不合之处&#xff0c;并揭示了在用不合的选项履行这些敕令时它们实际做了什么。# shutdown 13:25本篇将会向你展示如安在体系关机时向所有的体系用户发送一条自定义的消息。建议浏…

eclipse svn不能忽略文件及文件夹,ignore设置无效 ?

SVN这块做得不好&#xff0c;如果之前提交过此文件&#xff0c;就不能设置忽略该文件了。所以第一次提交的时候要搞清楚再提交。 【 亲测&#xff0c;的确如此&#xff0c;用 Windows -> Preferences -> Team -> Ignored Resources 方法不行。 项目右键--team--设置…

华为服务器产品系列号查询,华为LIST全系列 服务器产品速查清单

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼型号 描述S5700-EI-AC-B09 S5700-52C-EI交换机(48个10/100/1000Base-T RJ45,2个10GE SFP上行口, 含堆叠卡)S5700-EI-AC-B06 S5700-28C-EI交换机(24个10/100/1000Base-T RJ45,2个10GE SFP上行口, 含堆叠卡)FC0M00S67403 S6748-EI交换…

BZOJ4300 绝世好题

目录 BZOJ4300 绝世好题题解&#xff43;&#xff4f;&#xff44;&#xff45;BZOJ4300 绝世好题 题目传送门 题解 比较简单的\(DP\)&#xff0c;记\(f[i]\)表示第\(i\)位为&#xff11;&#xff0c;最长的长度为多少。只需要枚举每一个数字&#xff0c;对于这个数字二进制下…