博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BNUOJ52317 As Easy As Possible(树上倍增)
阅读量:7097 次
发布时间:2019-06-28

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

题意:

给你一个1e5长度的easy串(只含easy四个字母)

1e5个询问,每个询问一个区间l,r

问这个区间内easy的个数

思路:

当时还想预处理出最优的easy区间,然后lower_bound

wa了几发发现这样并不是最优的,然后就放弃了~

出题解后补了一个倍增

每个字母记录前面那个字母出现的位置,然后倍增

每次查询先找出距离r最近的那个'y'

然后直到找到l,统计出找到的字母的数量/4就是答案

/* ***********************************************Author        :devil************************************************ */#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LL long long#define rep(i,a,b) for(int i=a;i<=b;i++)#define dep(i,a,b) for(int i=a;i>=b;i--)#define ou(a) printf("%d\n",a)#define pb push_back#define mkp make_pairtemplate
inline void rd(T &x){ char c=getchar(); x=0; while(!isdigit(c))c=getchar(); while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); }}#define IN freopen("in.txt","r",stdin);#define OUT freopen("out.txt","w",stdout);using namespace std;const int inf=0x3f3f3f3f;const int mod=1e9+7;const int N=1e5+10;char s[N];int py[N],fa[N][20],n,m,last[4],dep,l,r;int main(){ scanf("%s",s+1); rd(m); n=strlen(s+1); rep(i,1,n) { if(s[i]=='e') { fa[i][0]=last[3]; last[0]=i; } else if(s[i]=='a') { fa[i][0]=last[0]; last[1]=i; } else if(s[i]=='s') { fa[i][0]=last[1]; last[2]=i; } else { fa[i][0]=last[2]; last[3]=i; } py[i]=last[3]; } for(dep=1;1<
<=n;dep++); rep(i,1,dep-1) rep(j,1,n) fa[j][i]=fa[fa[j][i-1]][i-1]; while(m--) { rd(l),rd(r); r=py[r]; int ans=1; dep(i,dep-1,0) if(fa[r][i]>=l) { r=fa[r][i]; ans+=1<

 

转载于:https://www.cnblogs.com/d-e-v-i-l/p/5933706.html

你可能感兴趣的文章
流言终结者- Flutter和RN谁才是更好的跨端开发方案?
查看>>
关于对整站进行二级域名的改造
查看>>
Java11 HttpClient小试牛刀
查看>>
spring事务增强,事务回滚如何判断?希望在前端上有个提示
查看>>
阿里云RDS与ECS自建库搭建主从复制
查看>>
Spring Boot 核心配置文件 bootstrap & application 详解。
查看>>
设置源为清华源
查看>>
SpringBoot非官方教程 | 第二十三篇: 异步方法
查看>>
PHP的Ev教程二(watcher和watche回调等)
查看>>
基于rollup的组件库打包体积优化
查看>>
React Native 打包apk的那些坑
查看>>
[新手坑] 03.Vue-CLI用ES6编码仍需要手动安装一些Babel插件
查看>>
饿了么手机版-VUE2
查看>>
python基础
查看>>
本周学习小结4.12
查看>>
java9 module相关选项解析
查看>>
Nginx--proxy cache使用
查看>>
离线计算中的幂等和DataWorks中的相关事项
查看>>
Facebook Docusaurus 中文文档 翻译&本地化
查看>>
Laravel Service Provider 开发时设置延迟加载时遇到的问题
查看>>