【集训Day2】字符串

字符串(hash算法完成) 字符串 题目描述 给一个字符串T,问在字符串T 中可以包含最多多少个不重叠的字符串S。 字符串中的每个字符为小写或者大写字母。 输入 第一行输入一个字符串S。 第二行输入一个字符串T。 输出 输出一行,包括一个整数表示答案。 样例输入 aba abababa 样例输出 2 提示 【数据范围】: 20%的数据,1<=字符串T 长度<=20000, 1<=字符串S 长度<=100; 100%的数据,1<=字符串T 长度<=1000000, 1<=字符串S 长度<= 阅读详情

字符串(string)
【问题描述】
给一个字符串T,问在字符串T 中可以包含最多多少个不重叠的字符串S。
字符串中的每个字符为小写或者大写字母。
【输入格式】
第一行输入一个字符串S。
第二行输入一个字符串T。
【输出格式】
输出一行,包括一个整数表示答案。
【输入样例】
Aba
Abababa
【输出样例】
2
【数据范围】
50%的数据,1<=字符串T 长度<=20000, 1<=字符串S 长度<=100
100%的数据,1<=字符串T 长度<=1000000, 1<=字符串S 长度<=100000。其中多数是随
机产生。
【解题思路】
将字符串转化为独一无二的五十二进制数,利用部分和原理一段一段进行比较。
【参考程序】

#include<iostream>
#include<cstdio>
using namespace std;
const int mod=13131313;//取模是因为五十二进制数通常非常大。 
string s,t;
int lens,lent;
long long num,l[1000001],tmp,ans;
int trans(char a)//将字母变成五十二进制中的0...51 
{
    if (a>='a') return a-'a';
    else return a-'A'+26;
}
int main()
{
    freopen("string.in","r",stdin);
    freopen("string.out","w",stdout);
    cin>>s;lens=s.size();
    for (int i=0;i<lens;i++) 
        num=(num*52%mod+trans(s[i]))%mod;//转化出s的五十二进制代码 
    cin>>t;lent=t.size();
    l[1]=(l[0]*52%mod+trans(t[0]))%mod;//转化出1~t[i]的五十二进制代码 
    for (int i=1;i<lent;i++)
        l[i+1]=(l[i]*52%mod+trans(t[i]))%mod;
    tmp=1;
    for (int i=0;i<lens;i++)//利用部分和原理
        tmp=tmp*52%mod;
    //像是如果要取999666中的666,需要999666- 999*10^2。
    //这里求的就是其中的对应10^2,只不过这里是52^lens 
    int left=1;
    while (left<=lent-lens+1)
    {
        long long find=(l[left+lens-1]-l[left-1]*tmp%mod+mod)%mod;
        if (find==num)
        {
            ans++;
            left+=lens;//不重叠 
        }
        else left++;
    }   
    cout<<ans;
    return 0;
}
集训DAY2之线性字符串算法 本日的训练进入尾声坚持是青春最美的底色今天的难度是否觉得难受?如果是加油咬牙坚持下去!如果不是???膜拜大佬。 阅读详情

相关推荐

银行卡密码键盘 SM4 ECB模式+ANSI X9.8 格式标准(带主账号信息)PIN 加解密示例

文章目录1.软加解密示例2.知识点①ANSI X9.8 格式标准②主密钥,工作密钥加解密基本概念:加密种类:3.密码键盘操作4.工具 1.软加解密示例 ————————————————————————————————————————————------ 已知数据: 银行测试主密钥TMK: 1234567890ABCDEFABCDEF0987654321 通过签到接口得到: 工作密钥密文KeyVal...

老孟嘚吧嘚 6651

NHOI2015 初中组 T4

题目描述 给一个字符串 TTT,问在字符串 TTT 中可以包含最多多少个不重叠的字符串 SSS。 字符串中的每个字符为小写或者大写字母。 输入格式 第一行输入一个字符串 SSS。 第二行输入一个字符串 TTT。 输出格式 输出一行,包括一个整数表示答案。 输入样例: Aba Abababa 输出样例: 1 数据范围 1≤∣T∣≤106,1≤∣S∣≤105。1\leq|T|\leq10^6, 1\leq|S|\leq10^5。1≤∣T∣≤106,1≤∣S∣≤105。 解题思路 这道题考的是贪心 贪心策略

qq_57217599的博客 873

中介效应、调节效应与交互效应:从概念辨析到统计建模全指南

在社会科学与数据分析研究中,理解变量之间的因果关系与条件性影响是核心任务之一。回归分析作为最基础的统计工具,常被用于探索自变量对因变量的作用机制,而中介效应与调节效应则分别回答了“如何影响”与“何时影响不同”的深层问题。中介效应通过路径分析拆解因果链条,揭示内部的传导机制;调节效应则借助交互项识别影响的边界条件。Bootstrap法已成为检验间接效应的主流手段,而简单斜率分析则让调节作用的模式更加直观。无论是用户研究、医学统计还是产品数据分析,掌握这些模型都能帮助研究者构建更具解释力的实证框架。本文基于大量

weixin_29051149的博客 330

问题 D: NH字符串--------------模拟

题目描述 给一个字符串 T,问在字符串 T 中可以包含最多多少个不重叠的字符串 S。 字符串中的每个字符为小写或者大写字母。 输入 第一行输入一个字符串 S。 第二行输入一个字符串 T。 输出 输出一行,包括一个整数表示答案。 样例输入 Copy Aba Abababa 样例输出 Copy 1 提示 50%的数据,1<=字符串T长度<=20000,1<=字符串S长度<=10...

qq_43690454的博客 488

StarRocks FE启动异常

服务器断电,StarRocks FE 启动失败。

qq_15138049的博客 1112

UFS电源管理实战:如何优化手机存储的功耗与性能(附实测数据)

本文深入探讨了UFS电源管理的实战优化策略,旨在平衡手机存储的功耗与性能。通过解析UFS核心电压域与工作状态,重点介绍了通过动态调整bActiveICCLevel(活动电流等级)来实现精细控制,并结合实测数据与场景驱动的智能策略,为Android系统与硬件工程师提供了降低功耗、提升流畅度的有效方法。

weixin_29214559的博客 504

字符串匹配 KMP算法

首先先来看一个问题,给出两个字符串,S和T 问T在S中出现了多少次,不允许重复,但允许相互有相同部分。 首先想到的肯定是暴力,可以想到,从S的第一个字符开始,看是否和T相等,然后向后移,统计有多少个相等,那么时间就是O(n×m)\text O(n\times m) 当然,这个速度是非常慢的,如果两个串的长度很长,或者有多组数据,自然就超时了。 显然,在匹配的时候,如果遇到不相等的情况,移到下

_Evolution的博客 447

49、Linux内核内存管理:MGLRU、DAMON与OOM杀手详解

本文详细解析了Linux内核内存管理中的三大核心机制:MGLRU(多代LRU)页面追踪与回收机制、DAMON数据访问监控工具及其在内存优化中的应用,以及OOM(内存不足)杀手的工作原理和触发方式。同时,文章还介绍了VM overcommit_memory策略的设置及其对内存分配的影响,帮助开发者和系统管理员更好地理解Linux内存管理机制,从而优化系统性能和稳定性。

dropout6artist的博客 107

KMP,找出s字符串在T字符中的位置,或有几个

优质博客推荐 hdu1711 #include #include #define mem(a,b) memset(a,b,sizeof(a)) int a[1000005]; int b[10005]; int nex[10005]; int n,m; void KMP() { mem(nex,0); nex[0]=-1; int i=0,k=-1; whi

zxy160的博客 827

104、母线电容设计与选型

母线电容选型,容值不是最关键的,纹波电流和温度才是。很多炸机事故,不是容值不够,而是纹波电流超标导致过热。选电容时,多花点时间算纹波电流,比盲目加大容值有效得多。另外,别迷信进口品牌。国产电容(如江海、艾华)在常规应用里完全够用,价格只有进口的1/3。但高频特性确实有差距,所以高频去耦一定要用薄膜电容。最后,留个调试技巧:用示波器测母线电容两端的电压纹波,同时用电流探头测电容的纹波电流。如果纹波电流波形有尖峰,说明ESL太大,需要并联高频电容。如果纹波电压是低频波动,说明容值不够。

2401_88858637的博客 47

SAP-ABAP:新手入门篇——从0到1写出你的第一个ABAP Hello World程序并完成调试运行

本文是ABAP开发入门指南,详细介绍如何创建并运行第一个"Hello World"程序。主要内容包括:通过SE38事务码进入ABAP编辑器;创建以Z/Y开头的程序并保存为本地对象;编写简单的WRITE输出语句;完成语法检查、激活和执行流程;以及初步体验调试功能。文章特别强调ABAP开发的规范要求,如程序命名规则、激活与保存的区别等,并提供了详细的步骤说明和常见问题提示,帮助零基础开发者快速上手ABAP编程。

baidu_35680696的博客 479

[五月集训]字符串---day2

前言 一、题目 (1)500. 键盘行 (2) (3) 二、内容 三、总结 前言 这章不会呀,基本上看着题解做的。哈希表的知识没有学过,希望可以通过这章来学习有关哈希的内容吧,而且tolower是什么意思也不懂。看来要学习的东西还要很多呢。 最近感觉要不要学一下新的语言,好像其他语言比较好做题的样子 一、题目 (1)500. 键盘行 (2) (3) 二、内容 ...

qq_63522719的博客 150

手把手教你学Simulink--控制策略与算法的DC-DC变换器领域仿真领域建模实例:基于Simulink实现一个双闭环控制Buck变换器的仿真建模

目录主要步骤1. 前期准备2. 构建Buck变换器模型3. 定义双闭环控制器4. 设置参考电压和反馈回路5. 实现双闭环控制器逻辑6. 仿真参数设置7. 运行仿真与结果分析示例整合代码片段1. Simulink模型2. 双闭环控制器参数调节3. 仿真结果分析总结双闭环控制是一种常见的控制策略,广泛应用于电力电子系统(如DC-DC变换器)中。它通过内外两个环路的协同工作,分别控制系统的动态性能和稳态性能。对于Buck变换器,通常采用电流内环和电压外环的双闭环控制结构。以下是一个手把手教程,帮助你基于Simul

MHD0815的博客 324

2025年河南省暑期青少年程序设计能力提升集训DAY2线性字符串算法(哈希+KMP+Manacher+最小表示法)

关于哈希的介绍这里复制粘贴了:Hash是一种数据结构,叫做Hash表(哈希表),也叫散列表。关于Hash的实现,其实与离散化颇为类似。就是把若⼲的复杂的信息映射到一个比较容易维护的值域去。具体的实现方式是散列函数,即Hash函数,其原理是对于一个数据,选取一个关键键值 ,那么这个数据在Hash表中的位置就是。那么这个对应关系就是哈希函数。即:(p为大质数,常用13331,mod取更大即可,我用无符号long long不考虑mod)个人理解就是一段。

Wander_ner的博客 908

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【JZYZ集训Day2】字符串相关专题 Hash&&KMP&&Trie&&0/1Trie

字符串相关专题。Hash&&KMP&&Trie&&0/1 Trie

qq_35684989的博客 437

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

金华集训正睿Day2 分治&图论&字符串

讲课 1.图论 - 1.最短路变种:??? - 2.例1。 题目:给定⼀张有向带正权拓扑图,求有⼏条 1 到 N 的路径的长度<= 1 到 N 的最短路+K 暴力&正解: 设f[x][L]表示1~x路径长度为L f[x][L]->f[ 要求L+dis(x,n)-dis(1,n)<=k; dis(1,n)<=dis(x,n)+dis(1,x) L+dis(x,n)...

qq_40900472的博客 425

[HN省队集训Day2]有趣的字符串题 回文树+线段树+树状数组

题目描述 白兔有一个长度为n的字符串。 白云有m个询问,每个询问会询问一段区间的本质不同回文子串个数。 (虽然原题没说,但是字符串只包含小写字母) 输入描述 第一行两个整数n, m。 接下来一行一个长度为n的字符串。 接下来m行,每行两个整数l, r。 输出描述 为了避免输出占用太多运行时间,你只需要输出∑mi=1ansi∗imod109+7∑i=1mansi∗imod109+7...

litble的成(tui)长(fei)史 1594

湖南集训 Day2

湖南集训Day2T1 //N*K模拟都会吧 然后转成N+K做法,然后发现奇数位的223和233改变的时候 //都是循环的,,然后你再和N*K的做法对拍个十万八千组 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define MAXN 1000005 using namespace std;

苦鬼·。 368

LOJ#6036. 「雅礼集训 2017 Day4」编码(2-SAT)

传送门 题解: 对于每个串,在Trie树上找到他’?’处填0或者1的位置。 那么他的子树中(不包括他)的所有串不能选。 对于他这个节点我们记录一个前缀后缀就可以做到O(n)O(n)O(n)了。 #include &lt;bits/stdc++.h&gt; using namespace std; const int N=1e6+50; typedef pair &lt;int,int&...

DZYO的博客 852

雅礼集训【Day6-1】字符串

雅礼集训【Day6-1】字符串 假设我们有串\(a\),我们设\(a'\)为\(a\)翻转后按为取反过后的串。 我们只考虑前一半的,长为\(m\)的串。如果前半截匹配了\(a\)或者\(a'\),则\(a\)就被匹配上了。所以我们记\(f_{i,j,S}\)表示长度\(i\),在AC自动机上匹配到了\(j\)节点,已经匹配了的串的集合为\(S\)的方案数。 但是可能会出现\(a\)出现的位置跨越...

weixin_33834679的博客 140

ESP8285+MQTT实现电机控制器轻量上云

电机控制器联网是工业物联网的基础能力,其本质是通过嵌入式通信模块将串口设备接入标准网络协议栈。MQTT凭借二进制轻量、长连接复用和发布/订阅解耦等特性,成为资源受限设备(如仅80KB RAM的ESP8285)的理想选择;相比HTTP或WebSocket,它大幅降低内存占用与实时延迟。该方案不依赖云厂商SDK,以AT指令直控方式保障指令确定性与调试透明性,适用于产线远程监控、多端协同调试及小批量定制化交付场景。文中以ESP8285为通信枢纽、MQTTX为调试入口,构建从硬件接线、协议解析到全链路闭环的可复现上

weixin_34184561的博客 279

[JZOJ5129][SDOI省队集训2017]字符串

题目大意从n个字符串中依次选出一个子串拼接,求本质不同的数量。SAM我们尽量长化前面的。 于是倒着做,对每个串都要建SAM。 只需要处理开头是某个字符的方案数,SAM的一个节点没有该转移边即可。 大概就这样,懒得写清楚了。#include<cstdio> #include<algorithm> #include<cstring> #define fo(i,a,b) for(i=a;i<=b;i

不来也不去的一只失忆蝴蝶 797

2020牛客国庆集训派对day2(补题)

2020牛客国庆集训派对day2(补题) 2020牛客国庆集训派对day2 C ELI’S CURIOUS MIND ῟ 题意很简单,这个题采用了递推的思想,首先,我们要知道,我们只需要求得从1和开始递推的序列数就可以了,当我们从大于3的数开始取,那么由于第二条规则,这个数能取到,那么必能取到1和2中的某一个数,所以一个序列一定是从1和2开始的,其次,增加到第i个试管,那么这些试管混合得到的种类就是i - 2和i - 3的种类和,因为由于第二条规则,我们只需要将每一个原序列再后顺延一位,这样可以发现,当试

CUCUC1的博客 348

集训Day1

雅礼集训2017Day1的题 感觉上不可做实际上还挺简单的吧 T1 区间加 区间除法向下取整 查询区间和 区间最小值 大力上线段树,把除法标记推到底,加法标记就是按照线段树的来 先拿30 然后60的数据随机不知道该怎么做 开始YY 那个“向下取整”的tag并不能累加 所以考虑转化 除法->减法 如果一个区间要减的都是一样的数,直接减就行了,如果不一样,就递归...

aobai7842的博客 93

【ACM】—蓝桥杯大一暑期集训Day5

【ACM】—蓝桥杯大一暑期集训Day5

H1727548的博客 2452
上一篇: 【集训Day2 哈希表】【NHOI2015】【Luogu P2421】差
下一篇: 【集训Day3 离散化】矩形覆盖
苟岂
博客等级 码龄10年 20粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值