传送门

没想到这题还这能用莫队……本来看看以为复杂度会挂的……
预处理出每个字母开头往后\(k\)个的字符串的哈希值,然后大概就是那道小z的袜子了
而且据说这题的哈希得用自然溢出

//minamoto
#include<bits/stdc++.h>
#define R register
#define ll unsigned long long
#define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
using namespace std;
const int N=3e6+5,Base=233;
int n,m,cnt[N],rt[N],k,q,S,l,r,tot;char s[N];ll bin[N],a[N],b[N],sum[N],ans[N],res;
struct node{int l,r,id;inline bool operator <(const node &b)const{return rt[l]==rt[b.l]?rt[l]&1?r<b.r:r>b.r:l<b.l;}
}qq[100005];
inline void add(R int x){res+=cnt[a[x]],++cnt[a[x]];}
inline void del(R int x){--cnt[a[x]],res-=cnt[a[x]];}
int main(){
//  freopen("testdata.in","r",stdin);scanf("%d%d%d",&n,&q,&k),S=n/sqrt(q);if(S==0)S=1;scanf("%s",s+1);bin[0]=1;fp(i,1,n)bin[i]=bin[i-1]*Base,sum[i]=sum[i-1]*Base+s[i]-'a',rt[i]=(i-1)/S+1;n=n-k+1;fp(i,1,n)b[i]=a[i]=sum[i+k-1]-bin[k]*sum[i-1];sort(b+1,b+1+n),m=unique(b+1,b+1+n)-b-1;fp(i,1,n)a[i]=lower_bound(b+1,b+1+m,a[i])-b;fp(i,1,q){scanf("%d%d",&l,&r);if(l<=n){if(r>n)r=n;++tot,qq[tot].l=l,qq[tot].r=r,qq[tot].id=i;}}sort(qq+1,qq+1+tot);res=0,l=1,r=0;fp(i,1,tot){while(l>qq[i].l)add(--l);while(r<qq[i].r)add(++r);while(l<qq[i].l)del(l++);while(r>qq[i].r)del(r--);ans[qq[i].id]=res;}fp(i,1,q)printf("%lld\n",ans[i]);return 0;
}

转载于:https://www.cnblogs.com/bztMinamoto/p/10165387.html

P5112 FZOUTSY相关推荐

  1. 2018十二月刷题列表

    Preface \(2018\)年的尾巴,不禁感慨自己这一年的蜕变只能用蜕变来形容了. 而且老叶说我们今年没的参加清北冬令营可以参加CCF在广州二中举办的冬令营,只要联赛\(390+\)就应该可以报. ...

最新文章

  1. Sql plus命令报command not found的解决笔记
  2. 【MFC系列-第16天】企业信息管理软件开发
  3. Linux 文件系统与设备文件系统 (一)—— udev 设备文件系统
  4. Dubbo-go 优雅上下线设计与实践
  5. JetBrains系列WebStorm等中文输入法无法跟随光标的问题的解决办法
  6. php 在线更新,Updates.php给自己的主题添加在线更新功能
  7. 统信招5000人?难以置信
  8. 小巧票据打印软件免费下载
  9. chrome os 安装手册
  10. 微信任意用户密码修改漏洞分析
  11. Cisco wlan controlller配置
  12. python12306抢票_python实现12306抢票
  13. vue中使用第三方阿里巴巴矢量图标库,并修改图标大小
  14. 电脑突然找不到wifi 的解决方法
  15. 内网渗透学习-Windows信息收集
  16. Redis中的数据类型及其应用场景
  17. MCS-51单片机指令系统--数据传送指令
  18. PHP fscanf
  19. python 隐函数作图(原创简单方法)
  20. Angular7 nz-rozzo nz-form

热门文章

  1. Tensorflow笔记(一): tensorflow的安装
  2. 性能测试:性能测试实施全过程指南
  3. Java之消息摘要之commons codec
  4. scala调用java库_从scala调用java时的java.lang.IllegalAccessError – solutions / workarounds?...
  5. 全民一起玩python课件_全民一起玩Python课基础+提高篇[免费学习]
  6. php mysql time_wait_[PHP]MySQL的wait_timeout与pdo对象
  7. inputstream是否一定要close_新车是否需要底盘保养?一定要喷底盘防锈漆吗?
  8. mysql mha reference_MySQL MHA配置常见问题
  9. OAuth2.0资源服务器之校验Token配置
  10. oracle 多版本技术,读书笔记: 关于oracle中多版本的问题