bzoj2795

Windows原生环境配置Tensorflow使用GPU 本文讲解如何在Windows原生环境搭建可调用GPU设备进行计算的Tensorflow2.x环境。 区别于WSL,使用Windows原始环境作为开发环境。 阅读详情

2795: [Poi2012]A Horrible Poem

Time Limit: 50 Sec  Memory Limit:128 MB
Submit: 561  Solved: 276
[Submit][Status][Discuss]

Description


给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节。
如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到。

Input

 

第一行一个正整数n (n<=500,000),表示S的长度。
第二行n个小写英文字母,表示字符串S。
第三行一个正整数q (q<=2,000,000),表示询问个数。
下面q行每行两个正整数a,b (1<=a<=b<=n),表示询问字符串S[a..b]的最短循环节长度。

Output

依次输出q行正整数,第i行的正整数对应第i个询问的答案。

Sample Input

8
aaabcabc
3
1 3
3 8
4 8

Sample Output

1
3
5
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<string>
using namespace std;
const int N=500005;
const int P=29;
char ch[N];
int n,minp[N],pri[N],len,t1,t2,m,x,y,ans,zs,p[N],has[N];
inline void prep(){
    for (int i=2;i<=n;++i){
        if (!minp[i])pri[++len]=(minp[i]=i);
        for (int j=1;j<=len && i*pri[j]<=n;++j){
            minp[i*pri[j]]=pri[j];
            if (i%pri[j]==0)break;
        }
    }
}
inline bool judge(int l1,int r1,int l2,int r2){
    t1=has[r1]-has[l1-1]*p[r1-l1+1];
    t2=has[r2]-has[l2-1]*p[r2-l2+1];
    return (t1==t2);
}
int main (){
    scanf ("%d%s",&n,ch+1);
    p[0]=1;
    for (int i=1;i<=n;++i){
        p[i]=p[i-1]*P;
        has[i]=has[i-1]*P+ch[i];
    }
    prep();scanf ("%d",&m);
    for (int i=1,j;i<=m;++i){
        scanf ("%d%d",&x,&y);
        for (j=ans=y-x+1;j>1;){
            zs=minp[j];
            while (ans%zs==0 && judge(x,y-ans/zs,x+ans/zs,y))ans/=zs;
            while (j%zs==0)j/=zs;
        }
        printf ("%d\n",ans);
    }
    return 0;
}


PX4从放弃到精通(二十八):垂起过渡控制 固件版本:1.14.0可加名片交流学习。 阅读详情

相关推荐

Unity游戏开发:从零开始适配Nintendo Switch的完整指南

本文详细介绍了如何使用Unity进行Nintendo Switch游戏开发的完整流程,包括开发环境搭建、Unity工程适配、手柄与硬件特性开发、存储与性能优化等关键步骤。特别强调了Switch SDK的配置、输入系统改造和内存优化技巧,帮助开发者高效完成跨平台适配。

vodka的博客 1069

低照度图像增强——传统算法实战与效果对比

本文深入探讨了低照度图像增强的传统算法实战与效果对比,重点分析了直方图均衡化、伽马变换和Retinex三大类算法的原理、实现及优缺点。通过代码示例和效果对比,展示了这些算法在提升图像质量方面的实际表现,为安防监控、老照片修复等场景提供了实用的技术选型建议。

weixin_34319374的博客 455

Anaconda下安装LabelImg

Anaconda下安装LabelImg

LYH8543的博客 756

bzoj 2795: [Poi2012]A Horrible Poem (hash+数论)

2795: [Poi2012]A Horrible Poem Time Limit: 50 Sec  Memory Limit: 128 MB Submit: 448  Solved: 219 [Submit][Status][Discuss] Description 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节。 如果字符串B是字符串A

clover_hxy的博客 770

利用LATX技术在龙芯安同AOCS OS上部署坚果云:跨架构文件同步实战

本文详细介绍了如何在龙芯安同AOCS OS上,利用LATX指令翻译技术部署坚果云客户端,实现跨架构文件同步。通过安装LATX环境、解压x64安装包、运行安装脚本三步,成功在loongarch64架构上运行仅支持x86_64的软件,解决了国产平台办公协同的痛点,并分享了性能实测与优化建议。

weixin_29305337的博客 457

波动性GARCH模型与波动率预测(代码+结果分析)

本文介绍的ARCH、GARCH模型可以刻画出随时间变化的条件异方差。

celiaweiwei的博客 2万+

BZOJ 2795:[Poi2012]A Horrible Poem

2795: [Poi2012]A Horrible Poem Time Limit: 50 Sec  Memory Limit: 128 MB Submit: 518  Solved: 248 [Submit][Status][Discuss] Description 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节。 如果字符串B是字符

BlackJack 554

FDTD Script命令学习-farfield3d/farfieldux/farfielduy

介绍了farfield3d/farfieldux/farfielduy命令功能,及不同应用语法和参数介绍,以及对官网示例进行介绍。

jxxl_1314的博客 3098

BZOJ 2795 Poi2012 A Horrible Poem Hash

题目大意:给定一个字符串,多次询问某一子串的循环节 首先循环次数一定是子串长度的约数 因此我们可以枚举子串长度的约数进行验证 验证时选择Hash,验证[x,y-len]和[x+len,y]这两段是否相等,O(1)即可出解 但是这样做总复杂度是O(q√n)的,会T 考虑一个优化,设某个字母在子串中出现了k次,那么循环次数一定是k的约数 因此我们取每个字母在子串中出现次数的Gcd,枚举这个

世界 1989

USB3.0 Type-B连接器SSTX/SSRX信号定义常见错误与硬件设计避坑指南

本文详细解析了USB3.0 Type-B连接器中SSTX/SSRX信号的定义标准与常见设计错误。针对连接器厂商图纸可能出现的信号标识错误,提供了实用的排查方法和硬件设计避坑指南,帮助工程师避免因引脚定义颠倒导致的通信降级或故障,确保USB3.0高速传输的稳定性。

gg901的博客 1268

虚拟化 之三 详解 ARM 平台 jailhouse 的移植适配、构建及使用(飞腾派)

本文将探索学习通过在飞腾官方提供的 Buildroot 构建系统移植适配 openEuler 内核以及 jailhouse 源码 Package 进而直接构建一个适用于飞腾派开发板的带有 jailhouse 的 openEuler 发行版。

技术干货 1007

BZOJ2795 [Poi2012]A Horrible Poem(洛谷P3538)

哈希 BZOJ题目传送门 洛谷题目传送门 我会O(nq)! 假如字符串sss的循环节长度为lenlenlen,那么lenlenlen的倍数也一定是sss的循环节。那么我们可以假定当前的最短循环节为len(s)len(s)len(s),然后类似质因数分解一样不断缩就好了。 具体见代码: #include&lt;cctype&gt; #include&lt;cstdio&gt; #incl...

forezxl的博客 474

零基础学习simulink-- 基于自适应模糊PID控制的直流电机速度控制系统

通过上述代码实现,您可以逐步创建和搭建一个基于自适应模糊PID控制的直流电机速度控制系统。该系统能够根据电机的状态和误差实时调整PID参数,确保电机速度稳定在设定范围内。自适应模糊PID控制具有较强的鲁棒性和适应性,能够在存在不确定性和扰动的情况下提供快速且精确的控制性能。Simulink提供了强大的建模和仿真工具,使得控制系统工程师能够快速构建复杂的控制算法,并将其应用于实际工程中。直流电机建模:建立直流电机的动态模型,包括电枢电压、电流、转速和负载扭矩。自适应模糊PID控制器设计。

amy_mhd的博客 413

【BZOJ2795】[Poi2012]A Horrible Poem【Hash】【GCD】【暴力】

【题目链接】 【POPOQQQ的题解】 跑了倒数rk5... /* Think Thank Thunk */ #include #include #include using namespace std; typedef long long LL; typedef unsigned long long ULL; const int maxn = 500005; int n,

BraketBN 878

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

BZOJ2795: [Poi2012]A Horrible Poem

BZOJ2795: [Poi2012]A Horrible Poem Description 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节。如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到。 Input 第一行一个正整数n (n<=500,000),表示S的长度。第二行n个小写英文字母,表示字符串S。第三行一个正...

weixin_30814329的博客 122

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【BZOJ2795】[Poi2012]A Horrible Poem hash

【BZOJ2795】[Poi2012]A Horrible Poem Description 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节。如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到。 Input 第一行一个正整数n (n<=500,000),表示S的长度。第二行n个小写英文字母,表示字符串S。第三行一个正整数...

weixin_30535043的博客 74

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

BZOJ 2795

#include&lt;bits/stdc++.h&gt; using namespace std; const int b=233,c=10007,M=500010; typedef unsigned long long ull; char s[M]; ull t,sum1[M],sum2[M],power1[M],power2[M]; ull get_hush1(int x,int y){ ...

Napoleon2004的博客 313

【bzoj2795】【Poi2012】A Horrible Poem

题解: 询问区间的整循环节 设区间长度为$n$ 如果有循环节长为$x$和$y$,那由斐蜀定理得$gcd(x,y)$也一定为一个循环节; 假设最小的循环节长为$mn$,那么对于任何循环节长$x$,一定$mn | x$ , 否则$gcd(mn,x)<mn$矛盾 推出$\frac{n}{x} | \frac{n}{mn}$ 所以每次提出$n$的一个质因子$p$,...

weixin_30654419的博客 118

bzoj2795 [Poi2012]A Horrible Poem

http://www.elijahqi.win/archives/2838 Description 给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节。 如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到。 Input 第一行一个正整数n (n&lt;=500,000),表示S的长度。 第二行n个小写英文字母,表示字符串S。 第三行一个正整...

Elijahqi 316

字符串hash,bzoj2795[Poi2012]A Horrible Poem

unsigned int BKDRHash(char *str) { unsigned int seed = 131; // 31 131 1313 13131 131313 etc.. unsigned int hash = 0; while (*str) { hash = hash * seed + (*str++); }

KatnissJ的博客 1070

bzoj-2795 A Horrible Poem

题意: 给出一个长度为N的字符串,有Q次询问; 每次询问给出一个区间,求区间最短循环节长度; N 题解: 这题数据范围简直丧病= =渣电脑3s真的能跑出来吗。。。 不过这题在BZ上是可做的,50s我的程序10s出解了; 首先这问题画一画发现它绝对不是什么数据结构能维护的,因为这东西毫无可并性; 硬说的话多个相同的的连在一起的循环节可以合并变长,然并卵; 所以如果考

140142 2484

[BZOJ 2795]POI2012 A Horrible Poem

很优美的题目:) 列出以下性质: 1、循环节一定是长度的约数(废话。。。) 2、如果n是一个循环节,那么k*n也必定是一个循环节(关键所在) 3、n是[l,r]这一段的循环节  的充要条件是  [l,r-n]和[l+n,r]相同(利用这个性质我们在判断是否为循环姐是可以做到O(1)) 我们从性质2开始,如果len是循环节,那么最小循环节一定是len的约数——是不是有想法了? 枚

Zeyu_King的专栏 1730

BZOJ 2795:[POI2012]OKR-A Horrible Poem

题意: 询问次数有200万次,每次询问的长度有50万,需要求出询问的区间的最小循环节。 给出性质1:对于一个区间的循环节来说,设区间为[l,r],循环节长度为len,那么可得:[l,r-len]=[l+len,r] (我们用哈希可以做到O(1)实现) 现在我们已经有了快速判断是否是循环节的方法了,然后我们需要找出一个快速枚举循环节的方法。 不难想到,枚举一个区间的全部因数,这样的复杂度为O(sqr...

Love_xyh的博客 338

bzoj2795[Poi2012]A Horrible Poem 暴力hash

题意:给你一个串,一些询问,求l,r子串内的最小循环节。|s|<=5e5,q<=2e6; 询问那么大,肯定不能搞事,然后我就想到了SAM。。。。。。 SAM明显搞不了啊,然后就萎了,想不到该咋搞。。 事实上暴力hash就可以了。。。 首先hash一波,枚举循环节长度以后,暴力O(1)判断循环节。 循环节长度不能无脑枚举,由于是循环节,那肯定是n的约数才有可能,所以根号搞一波。 但这样还是

老臣 443

bzoj2795: [Poi2012]A Horrible Poem

社会我梁哥

reflash的博客 951

【POI2012】【BZOJ2795】A Horrible Poem

Description给出一个由小写英文字母组成的字符串S,再给出q个询问,要求回答S某个子串的最短循环节。 如果字符串B是字符串A的循环节,那么A可以由B重复若干次得到。 Input第一行一个正整数n (n<=500,000),表示S的长度。 第二行n个小写英文字母,表示字符串S。 第三行一个正整数q (q<=2,000,000),表示询问个数。 下面q行每行两个正整数a,b (1<=a

CreationAugust is 14 years old forever 1617
上一篇: bzoj1531
下一篇: bzoj3831
Timothy023
博客等级 码龄9年 4粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值