
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文介绍了字符串哈希和KMP算法在字符串模式匹配中的应用。重点讲解了滚动哈希算法的实现,通过预处理主串的前缀哈希值和基数幂次数组,可以在O(1)时间内计算任意子串的哈希值,从而快速匹配模式串。该方法将时间复杂度从暴力枚举的O(nm)优化到O(n),适用于大规模字符串匹配问题。文中还给出了具体的算法实现代码,并分析了哈希冲突的处理策略。
OpenJudge NOI 2.1 1809:两倍记aia_iai为数字序列中的第i个数对满足条件的情况做计数。最后输出满足条件的情况数量。也可以先对序列做升序排序,在i
【题目链接】ybt 2046:【例5.15】替换字母【题目考点】1. 字符数组2. string类3. 读入带空格的字符串由于NOIP官方开始使用C++14编译器,C语言中用于读取带空格字符串的gets()函数已经不可以再用了。作为替代,有以下方法。cin.getline()函数。函数格式:cin.getline(字符数组名, 最大读入字符数)作用:读入一行带空格的字符串由于最大读入字符数中包含了
但实际情况是幻灯片是透明的而且可能是重叠的,编号的颜色都是相同的,一眼看上去看不出一个编号是写在哪张幻灯片上的。每次循环出队一个顶点X,如果到达顶点X的边只有一条,是从顶点Y出发到顶点X的边,那么顶点X的入度为1,这意味着顶点X代表的编号只存在于顶点Y代表的幻灯片的范围内,因此顶点X代表的编号一定为顶点Y代表的幻灯片的编号。如果最后删掉的表示编号顶点的数量小于n,说明最后有一些编号不能确定到底算是
【题目链接】ybt 1227:Ride to OfficeOpenJudge NOI 4.6 2404:Ride to Office原题是英文题,虽说两题题意相同,但一本通网站没有对该问题进行直译,名字都不一样。而且描述不够完整。我在这里再翻译一下。【题目翻译】骑车上班描述许多员工住在一个叫做M小区的地方,距离他们的单位很远(4.5公里)。由于交通堵塞,许多员工选择骑车。我们可以假设除了魏威以外所
ybt 1357:车厢调度(train)该题中,C铁轨就是一个栈。车厢从A到B,也可以等价为车厢先到C,再到B。因此该题可以抽象为:数字1到n入栈,出栈顺序能否为指定顺序。按照题目“提示”中给出的解法来做,提示如下:解析:观察发现,整个调度过程其实是在模拟入栈出栈的过程,而这个过程中,我们可以分成三种状态:栈前、栈中、栈后。我们可以发现,当某个数字出栈了,说明比它小的数字要么已经出栈了,要么还在栈
以及已知b数组的下标范围为[0, n),那么可知upper_bound的意义是:在左闭右开区间[a, an)指向的序列范围内找ai的上界,也就是大于ai的最小值的最小下标,这和STL中upper_bound的参数概念相同。而后遍历a数组,在a数组中选出元素a[i],而后看一下在b中有多少个元素与a[i]相加的结果都是小于等于sum的。在加和小于等于mid的数对的个数为k个的前提下,当mid不断减小
1.在 Linux 系统中,如果你想显示当前工作目录的路径,应该使用哪个命令?( )A. pwdB. cdC. lsD. echo答:Apwd (英文全拼:print work directory) 命令用于显示工作目录。cd (英文全拼:change directory)命令用于改变当前工作目录的命令,切换到指定的路径。ls (英文全拼: list directory contents)命令用于
【题目链接】ybt 1108:向量点积计算OpenJudge NOI 1.6 09:向量点积计算【题目考点】1. 数组【题解代码】解法1:#include <bits/stdc++.h>using namespace std;int main(){int a[1005], b[1005], n, sum = 0;cin>>n;for(int i = 0; i < n;
【题目链接】ybt 1122:计算鞍点OpenJudge NOI 1.8 05:计算鞍点【题目考点】1. 二维数组2. 求最大最小值【思路及题解代码】解法1:遍历各行,先找到这一行的最大值,假设最大值在第m_j列,然后判断该值是不是第m_j列的最小值,如果是,那么该位置就是鞍点。#include<bits/stdc++.h>using namespace std;int main(){







