BNUOJ 34990 Justice String (基于hash的LCP)

【LCP】圈圈-字符串哈希/后缀数组 题意:        shy有一个队列a[1], a[2],…,a[n]。现在我们不停地把头上的元素放到尾巴上。在这过程中我们会得到n个不同的队列,每个队列都是a[k],a[k+1],…,a[n],a[1],…,a[k-1]的形式。在这些队列中,我们可以找到字典序最小的。        shy无聊的 阅读详情

转自http://blog.youkuaiyun.com/w20810/article/details/48438047

题意:给定字符串A和B,在A里面找一个子串s,在s里面最多修改2个字符后使得s和B相同。求s的起始位置。

还是那种套路,不过这个地方的f1,f2,f3表示得挺好的。。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef unsigned long long ULL;
const int maxn = 2e5+6;
const int seed = 131;
ULL H[maxn],X[maxn];
char s1[maxn],s2[maxn];
int Len1,Len2,L;
void Init()
{
    H[L]=0;
    for(int i=L-1;i>=0;i--)
        H[i]=H[i+1]*seed+s1[i]-'a';
    X[0]=1;
    for(int i=1;i<L;i++)
        X[i]=X[i-1]*seed;
}
inline ULL GetHash(int i,int L) //
{
    return H[i]-H[i+L]*X[L];
}
int LCP(int a,int b)
{
    int ret=0,down=1,up=L-b,mid;
    while(down<=up)
    {
        mid=(down+up)>>1;
        if(GetHash(a,mid)==GetHash(b,mid))
        {
            down=mid+1;
            if(mid>ret) 
                ret=mid;
        }
        else
            up=mid-1;
    }
    return ret;
}
int main()
{
    int ncase,i,j,f1,f2,f3,ans;
    scanf("%d",&ncase);
    for(int T=1;T<=ncase;T++)
    {
        scanf("%s%s",s1,s2);
        Len1=strlen(s1);
        Len2=strlen(s2);
        L=Len1+Len2;
        strcat(s1,s2);
        Init();
        for(i=0;i<=Len1-Len2;i++)
        {
            f1=LCP(i,Len1);
            if(f1==Len2)
                break;
            f1++;
            f2=LCP(i+f1,Len1+f1);
            if(f1+f2==Len2)
                break;
            f2++;
            f3=LCP(i+f1+f2,Len1+f1+f2);
            if(f1+f2+f3==Len2)
                break;
        }
        printf("Case #%d: %d\n",T,((i<=Len1-Len2)?i:-1));
    }
    return 0;
}
基于 .NET 平台的开源微服务开发框架,专注于 RPC 通信与服务治理 接口即服务,自动生成 HTTP WebAPI 与 RPC 端点;内置负载均衡、熔断、TCC 分布式事务、链路追踪 基于 .NET 平台的开源微服务开发框架,专注于 RPC 通信与服务治理。接口即服务,自动生成 HTTP WebAPI 与 RPC 端点;内置负载均衡、熔断、TCC 分布式事务、链路追踪;支持 Zookeeper / Nacos / Consul;覆盖 .NET 6~10。 立即下载

相关推荐

TPM2-Startup-学习手册.docx

内容概要:本文深入解析了TPM 2.0中首个必要命令TPM2_Startup的工作机制,涵盖其在芯片初始化中的核心作用、启动类型决策逻辑、内部九个初始化阶段的详细流程,以及DRTM/H-CRTM安全机制的实现原理。文档结合源码(ibmswtpm2-tpm2)与实测报文,系统阐述了Startup如何通过状态校验、locality控制、PCR管理、密码学初始化、DA防护、ACT定时器、NV索引处理等环节,确保TPM在安全可信的状态下启动,并重点剖析了commitNonce重置、DA计时器跨重启续接、ACT减半防攻击等关键安全设计。; 适合人群:对TPM安全芯片感兴趣的零基础或初级开发者,以及从事可信计算、固件安全、系统启动安全相关工作的研发人员。; 使用场景及目标:①理解TPM为何必须以Startup作为第一条命令及其安全意义;②掌握SU_CLEAR、SU_STATE、SU_RESUME、SU_RESTART、SU_RESET等启动类型的决策逻辑与状态迁移;③深入学习DRTM与H-CRTM机制,理解动态信任根的建立过程;④分析DA防护、ACT定时器、有序NV索引等子系统的初始化行为与安全考量;⑤通过实验复现各类启动场景,提升对TPM底层机制的实战理解。; 阅读建议:建议结合文档提供的源码注释、实测报文和动手实验逐步验证,重点关注Startup与Shutdown的配对关系、状态持久化机制(NV)以及各类标志位(如g_DrtmPreStartup、g_StartupLocality3)的作用,注意区分规范定义与具体实现间的差异,并利用附录常量与术语表辅助理解。

UVA 12206 Stammering Aliens(基于哈希值的LCP算法)

UVA 12206 Stammering Aliens(基于哈希值的LCP算法) 题意:给你一个字符串s和m,求出字符串中至少出现m次的最长子串.如果有多解,输出最长字符串的长度以及它出现的最大位置. 分析:其实本题可以用后缀数组来解.下面用哈希值来做.        首先对于一个长为n的字符串,我们定义它的哈希值为(下面的x值是人为设定的一个值): s[0]+s[1]*x+s[2]*x^

code 1641

检索后重排实战:BM25 + 轻量交叉编码器,零 Key 离线可跑(Python 源码)

检索后重排实战包。BM25 召回 + 轻量交叉打分精排,含 nDCG/MRR 评估;无 Key 离线可跑。含样例语料与 smoke。

模板总结——基于哈希的LCP问题

问题引入 求第i位开始的后缀和第j位开始的后缀的最长公共前缀的长度? 高度数组&amp;&amp;RMQ 求出高度数组lcp,假设rank[i]小于rank[j],那么后缀i和后缀j的LCP值等于min{lcp[rank[i],lcp[rank[i+1],…lcp[rank[j]-1}. 预处理RMQ即可O(1)查询LCP值。但由于是预处理RMQ,无法动态回答LCP回答。也就是说一旦题目中...

EnjoyingAC的博客 1304

大唐杯(信科赛)赛道三资料

大唐杯(信科赛)赛道三资料

010_专科电子病历(肿瘤_心内等)模板化建设_答辩演示.pptx

010_专科电子病历(肿瘤_心内等)模板化建设_答辩演示

2014北京邀请赛 J 题 基于哈希值的LCP算法

题意:给定a和b两个字符串,有b匹配a在keyi

ACM,再见! 2404

国央企创新负责人如何快速识别关键技术成果并推动落地?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

LCP

LCP总结。

ZigZagK的博客 4721

三相电压型PWM整流器PI双闭环控制Matlab仿真

内容概要:本文档系统介绍了三相电压型PWM整流器的PI双闭环控制技术及其在Matlab/Simulink环境下的仿真建模方法,重点阐述了电流内环与电压外环的协同控制机制,旨在实现高功率因数、低电流谐波畸变及稳定的直流母线电压输出。内容涵盖多种典型电力电子变换器的建模与控制策略,包括三相维也纳(Vienna)整流器、双有源桥(DAB)变换器、LLC谐振变换器等,并深入探讨SVPWM调制、滞环电流控制、中点电位平衡、软开关技术、畸变抑制等关键技术。文档提供丰富的仿真模型、Mathcad计算书及参考文献,支持从基础控制结构到高级优化算法(如基于KKT条件的协同最小应力控制)的多层次研究与复现。; 适合人群:电气工程、自动化、电力电子与电力传动等相关专业的高校本科生、研究生,以及从事新能源发电、电动汽车、轨道交通等领域电能变换系统研发的科研人员与工程技术人员;要求具备Matlab/Simulink仿真基础及电力电子、自动控制理论的相关知识背景。; 使用场景及目标:①作为高校课程设计与实验教学的辅助材料,帮助学生掌握PWM整流器双闭环控制系统的设计流程与仿真方法;②支撑科研项目中对高性能整流器控制策略的验证、优化与EI级论文复现;③为工业界在新能源并网、车载充电机、直流配电系统等应用场景中的控制器开发提供仿真依据与参数设计工具;④结合Mathcad计算书实现不同功率等级与电压等级系统的自主建模与参数匹配。; 阅读建议:建议读者按照资源目录顺序循序渐进地学习,先掌握PI双闭环控制的基本架构与仿真调试方法,再逐步拓展至中点平衡控制、电网不平衡工况下的功率调节、软开关优化等高级主题;重点关注“顶级EI复现”案例以提升学术研究深度;推荐结合提供的仿真模型、计算书与参考文献进行对照分析与代码调试,强化理论与实践的融合能力。

政府科技管理者如何实现科技成果与产业需求的精准匹配?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

【BNUOJ 34990 】 Justice String 【基于Hash的LCP】

Given two strings A and B, your task is to find a substring of A called justice string, which has the same length as B, and only has at most two characters different from B. Input The first line of ...

lzs_lazy 258

基于高斯混合模型GMM的数据生成方法研究(Matlab代码实现)

内容概要:本文围绕Plecs全桥LLC谐振变换器的仿真模型展开,重点研究基于脉冲频率调制(PFM)控制策略的全桥LLC谐振变换器在Plecs或Simulink环境下的建模与仿真方法。内容涵盖系统工作原理、关键参数设计、谐振腔结构分析、软开关实现机制、控制策略实施及仿真结果验证等方面,深入探讨了变换器在不同负载条件下的动态响应特性、效率优化与频率调节范围等关键技术指标。文档提供了完整的仿真模型与代码实现,便于读者复现并开展进一步研究,适用于电力电子系统中高频高效电源的设计与优化。; 适合人群:具备电力电子、自动化或电气工程等相关专业背景,熟悉Plecs/Simulink仿真工具,从事高频电源、DC-DC变换器设计与研究的科研人员、工程师及高校研究生。; 使用场景及目标:①用于全桥LLC谐振变换器的教学演示与科研仿真;②支持对PFM控制下变换器效率、软开关特性、负载调整能力等性能的研究与优化;③为实际工程中高功率密度、高效率电源系统的设计提供理论支撑与仿真验证手段。; 阅读建议:建议读者结合文档中的仿真模型与代码,逐步搭建系统并调试关键参数,重点关注谐振元件(Lr、Cr)的匹配、励磁电感的影响、频率调制范围设置以及轻重载条件下软开关的实现条件,同时可通过对比不同工况下的仿真结果,深入理解LLC变换器的非线性动态特性与优化设计方法。

GIS 与农村土地承包数据管理领域的 Python/tkinter 绿色免安装桌面工具,用于 PostGIS/PostgreSQL 入库、MySQL→PG 跨库迁移与数据交换

GIS 与农村土地承包数据管理领域的 Python/tkinter 绿色免安装桌面工具,基于 pyshp、openpyxl、access-parser、pyodbc 读取 Shapefile 矢量坐标(WKT)与属性表、Access MDB 多表数据,按指定份数自动拆分并导出为 Excel 或 SQL,用于 PostGIS/PostgreSQL 入库、MySQL→PG 跨库迁移与数据交换。

Unisphere Client/SM/CLI工具

Unisphere Client/SM/CLI工具

DFT ATPG提升coverage的方法

采用更精确的故障模型,如桥接故障模型(用于描述电路中不应连接的节点之间的短路故障)和路径延迟故障模型(考虑信号在电路路径上的传输延迟),可以使ATPG工具生成更有效的测试向量来覆盖这些特殊故障。假设电路中有一个与门的输入引脚存在固定为0的故障(stuck - at - 0),D - 算法会分析与门的其他输入以及与门输出连接的后续电路逻辑,从而确定整个电路的输入值,使得当该故障存在时,电路的输出与无故障时不同。通过增加测试向量的类型,如功能测试向量和结构测试向量的结合,可以提高故障覆盖率。

Loving_enjoy的博客 968
上一篇: BNUOJ 34990 Justice String (基于hash的LCP)
下一篇: HDU 2609 How Many最大最小表示法的模板
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值