博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线段树 + 字符串Hash - Codeforces 580E Kefa and Watch
阅读量:7043 次
发布时间:2019-06-28

本文共 415 字,大约阅读时间需要 1 分钟。

  Kefa and Watch


 

Mean: 

给你一个长度为n的字符串s,有两种操作:

1 L R C : 把s[l,r]全部变为c;

2 L R d : 询问s[l,r]是否是周期为d的重复串。

analyse:

n最大为1e5,且m+k最大也为1e5,这就要求操作1和操作2都要采用logn的算法,所以用线段树.

对于更新操作,使用区间更新就可解决。

主要是如何在logn的时间内完成询问操作.

我们采用线段树维护hash值的方法.

结合于类似KMP的性质,我们发现,字符串[l,r]有长度为w的循环节,只需要使得[l,r-w]=[l+w,r]即可。证明过程

这题的hash不同于普通的字符串hash,因为涉及到动态修改,所以需要预先处理出所有的base,在修改的时候直接用.

Time complexity: O(N)

 

 

转载于:https://www.cnblogs.com/crazyacking/p/4850583.html

你可能感兴趣的文章
(一)Redis笔记——简介 、key 、数据类型
查看>>
第四篇:Web框架 - Django
查看>>
第九篇:随机森林(Random Forest)
查看>>
crontab命令详解
查看>>
高可用架构的6大常规方案【转】
查看>>
编程中的匈牙利命名法
查看>>
nj06---包
查看>>
Batch normalization:accelerating deep network training by reducing internal covariate shift的笔记
查看>>
Nginx/LVS/HAProxy负载均衡软件的优缺点详解
查看>>
Java -Xms -Xmx -Xss -XX:MaxNewSize -XX:MaxPermSize含义记录
查看>>
微信小程序开发之常见BUG
查看>>
汇编指令-MRS(读)和MSR(写)指令操作CPSR寄存器和SPSR寄存器使用(1)
查看>>
Instagram的Material Design概念设计文章分享
查看>>
Jersey VS Django-Rest
查看>>
安装 openCV 2.4.10
查看>>
去哪网实习总结:用到的easyui组件总结(JavaWeb)
查看>>
spring-oauth-server实践:使用授权方式四:client_credentials 模式下access_token做业务!!!...
查看>>
jquery miniui 学习笔记
查看>>
dubbo AdaptiveExtension
查看>>
Scrapy系列教程(1)------命令行工具
查看>>