hzoi欢乐时刻(持续更新)
%%NC哥
%%Dybala
%%cbx吐露(bei ji can)真相
%%skyh×2
不愿透露姓名的群众无意间发现惊人秘密,
skyh默默坦白真相,
这究竟是人性的沦丧还是道德的泯灭?
%%kx
%%%skyh,%%Dy××la,%%Y×m,%%xuefeng
%%ex-zkt
%mzz
re%%%kx
%%%某不愿透露姓名的葱厨
今日段子:kx是hzoi最gay的人
%%%xuefengNB
%%zkt:我的板子NB(指300行)
re %%%xuefeng大刺客
%%%1419
mikufun/Yu-shi:我要讲个鬼故事,有一个......
yzh:是你爷爷~(捂耳唱歌)
fhw:o(三声)o(二声)o(一声)
Yu-shi:我能吞下shit拉出坚果
mikufun:Yu-shi你后边有。。。。。。有东西!!!(关灯作惊恐状)
yzh:ooo!!
fhw:是你爷爷!
yzh:ji ji boon!qj了Myy(自行领会)!!!
Yu-shi:我能将我的1e36条内裤染成白色
mikufun:你们不觉得......
fhw:是你爷爷!!!!
yzh:ooo!!!
fhw:ji ji boon!qj了Myy(自行领会)!!!
(无限循环)
(mikufun讲故事完全失败.jpd)
%%%skyh&&xuefeng(天皇和大刺客在一起大家兹不兹瓷哇)
%%%lsc
%%新错误
%%mikufun
'''
#include<bits/stdc++.h>
#define ll long long
#define re register
#define cri const register int
using namespace std;
inline int read(){
re int a=0;re char ch=getchar();
while(ch<'0'||ch>'9') ch=getchar();
while(ch>='0'&&ch<='9') a=(a<<1)+(a<<3)+ch-'0',ch=getchar();
return a;
}
char s[100010];
int n,m,t[30],ls[300010],rs[300010];
int f[300010],da[300010][30],be[30],en[30];
void build(cri k,cri l,cri r){
f[k]=-1,ls[k]=l,rs[k]=r;
if(l==r){
da[k][s[l]-'a']=1;
return;
}
int mid=l+r>>1;
build(k<<1,l,mid);build(k<<1|1,mid+1,r);
da[k][1]=da[k<<1][1]+da[k<<1|1][1];
da[k][2]=da[k<<1][2]+da[k<<1|1][2];
da[k][3]=da[k<<1][3]+da[k<<1|1][3];
da[k][4]=da[k<<1][4]+da[k<<1|1][4];
da[k][5]=da[k<<1][5]+da[k<<1|1][5];
da[k][6]=da[k<<1][6]+da[k<<1|1][6];
da[k][7]=da[k<<1][7]+da[k<<1|1][7];
da[k][8]=da[k<<1][8]+da[k<<1|1][8];
da[k][9]=da[k<<1][9]+da[k<<1|1][9];
da[k][10]=da[k<<1][10]+da[k<<1|1][10];
da[k][11]=da[k<<1][11]+da[k<<1|1][11];
da[k][12]=da[k<<1][12]+da[k<<1|1][12];
da[k][13]=da[k<<1][13]+da[k<<1|1][13];
da[k][14]=da[k<<1][14]+da[k<<1|1][14];
da[k][15]=da[k<<1][15]+da[k<<1|1][15];
da[k][16]=da[k<<1][16]+da[k<<1|1][16];
da[k][17]=da[k<<1][17]+da[k<<1|1][17];
da[k][18]=da[k<<1][18]+da[k<<1|1][18];
da[k][19]=da[k<<1][19]+da[k<<1|1][19];
da[k][20]=da[k<<1][20]+da[k<<1|1][20];
da[k][21]=da[k<<1][21]+da[k<<1|1][21];
da[k][22]=da[k<<1][22]+da[k<<1|1][22];
da[k][23]=da[k<<1][23]+da[k<<1|1][23];
da[k][24]=da[k<<1][24]+da[k<<1|1][24];
da[k][25]=da[k<<1][25]+da[k<<1|1][25];
da[k][0]=da[k<<1][0]+da[k<<1|1][0];
}
void cs(cri k,cri L,cri R,cri x){
if(R<L) return;
if(ls[k]>=L&&rs[k]<=R){
f[k]=x;
for(re int i=0;i<=25;i++)
if(i==x) da[k][i]=rs[k]-ls[k]+1;
else da[k][i]=0;
return;
}
if(f[k]!=-1){
f[k<<1]=f[k<<1|1]=f[k],
da[k<<1][0]=da[k<<1|1][0]=0,
da[k<<1][1]=da[k<<1|1][1]=0,
da[k<<1][2]=da[k<<1|1][2]=0,
da[k<<1][3]=da[k<<1|1][3]=0,
da[k<<1][4]=da[k<<1|1][4]=0,
da[k<<1][5]=da[k<<1|1][5]=0,
da[k<<1][6]=da[k<<1|1][6]=0,
da[k<<1][7]=da[k<<1|1][7]=0,
da[k<<1][8]=da[k<<1|1][8]=0,
da[k<<1][9]=da[k<<1|1][9]=0,
da[k<<1][10]=da[k<<1|1][10]=0,
da[k<<1][11]=da[k<<1|1][11]=0,
da[k<<1][12]=da[k<<1|1][12]=0,
da[k<<1][13]=da[k<<1|1][13]=0,
da[k<<1][14]=da[k<<1|1][14]=0,
da[k<<1][15]=da[k<<1|1][15]=0,
da[k<<1][16]=da[k<<1|1][16]=0,
da[k<<1][17]=da[k<<1|1][17]=0,
da[k<<1][18]=da[k<<1|1][18]=0,
da[k<<1][19]=da[k<<1|1][19]=0,
da[k<<1][20]=da[k<<1|1][20]=0,
da[k<<1][21]=da[k<<1|1][21]=0,
da[k<<1][22]=da[k<<1|1][22]=0,
da[k<<1][23]=da[k<<1|1][23]=0,
da[k<<1][24]=da[k<<1|1][24]=0,
da[k<<1][25]=da[k<<1|1][25]=0,
da[k<<1][f[k]]=rs[k<<1]-ls[k<<1]+1,
da[k<<1|1][f[k]]=rs[k<<1|1]-ls[k<<1|1]+1,
f[k]=-1;
}
re int mid=ls[k]+rs[k]>>1;
if(L<=mid) cs(k<<1,L,R,x);
if(R>mid) cs(k<<1|1,L,R,x);
da[k][1]=da[k<<1][1]+da[k<<1|1][1];
da[k][2]=da[k<<1][2]+da[k<<1|1][2];
da[k][3]=da[k<<1][3]+da[k<<1|1][3];
da[k][4]=da[k<<1][4]+da[k<<1|1][4];
da[k][5]=da[k<<1][5]+da[k<<1|1][5];
da[k][6]=da[k<<1][6]+da[k<<1|1][6];
da[k][7]=da[k<<1][7]+da[k<<1|1][7];
da[k][8]=da[k<<1][8]+da[k<<1|1][8];
da[k][9]=da[k<<1][9]+da[k<<1|1][9];
da[k][10]=da[k<<1][10]+da[k<<1|1][10];
da[k][11]=da[k<<1][11]+da[k<<1|1][11];
da[k][12]=da[k<<1][12]+da[k<<1|1][12];
da[k][13]=da[k<<1][13]+da[k<<1|1][13];
da[k][14]=da[k<<1][14]+da[k<<1|1][14];
da[k][15]=da[k<<1][15]+da[k<<1|1][15];
da[k][16]=da[k<<1][16]+da[k<<1|1][16];
da[k][17]=da[k<<1][17]+da[k<<1|1][17];
da[k][18]=da[k<<1][18]+da[k<<1|1][18];
da[k][19]=da[k<<1][19]+da[k<<1|1][19];
da[k][20]=da[k<<1][20]+da[k<<1|1][20];
da[k][21]=da[k<<1][21]+da[k<<1|1][21];
da[k][22]=da[k<<1][22]+da[k<<1|1][22];
da[k][23]=da[k<<1][23]+da[k<<1|1][23];
da[k][24]=da[k<<1][24]+da[k<<1|1][24];
da[k][25]=da[k<<1][25]+da[k<<1|1][25];
da[k][0]=da[k<<1][0]+da[k<<1|1][0];
}
void add(cri k,cri L,cri R){
if(ls[k]>=L&&rs[k]<=R){
for(re int i=0;i<26;i++)
if(be[i]<=rs[k]&&en[i]>=ls[k])
cs(k,max(ls[k],be[i]),min(en[i],rs[k]),i);
return;
}
if(f[k]!=-1){
f[k<<1]=f[k<<1|1]=f[k],
da[k<<1][0]=da[k<<1|1][0]=0,
da[k<<1][1]=da[k<<1|1][1]=0,
da[k<<1][2]=da[k<<1|1][2]=0,
da[k<<1][3]=da[k<<1|1][3]=0,
da[k<<1][4]=da[k<<1|1][4]=0,
da[k<<1][5]=da[k<<1|1][5]=0,
da[k<<1][6]=da[k<<1|1][6]=0,
da[k<<1][7]=da[k<<1|1][7]=0,
da[k<<1][8]=da[k<<1|1][8]=0,
da[k<<1][9]=da[k<<1|1][9]=0,
da[k<<1][10]=da[k<<1|1][10]=0,
da[k<<1][11]=da[k<<1|1][11]=0,
da[k<<1][12]=da[k<<1|1][12]=0,
da[k<<1][13]=da[k<<1|1][13]=0,
da[k<<1][14]=da[k<<1|1][14]=0,
da[k<<1][15]=da[k<<1|1][15]=0,
da[k<<1][16]=da[k<<1|1][16]=0,
da[k<<1][17]=da[k<<1|1][17]=0,
da[k<<1][18]=da[k<<1|1][18]=0,
da[k<<1][19]=da[k<<1|1][19]=0,
da[k<<1][20]=da[k<<1|1][20]=0,
da[k<<1][21]=da[k<<1|1][21]=0,
da[k<<1][22]=da[k<<1|1][22]=0,
da[k<<1][23]=da[k<<1|1][23]=0,
da[k<<1][24]=da[k<<1|1][24]=0,
da[k<<1][25]=da[k<<1|1][25]=0,
da[k<<1][f[k]]=rs[k<<1]-ls[k<<1]+1,
da[k<<1|1][f[k]]=rs[k<<1|1]-ls[k<<1|1]+1,
f[k]=-1;
}
re int mid=ls[k]+rs[k]>>1;
if(L<=mid) add(k<<1,L,R);
if(R>mid) add(k<<1|1,L,R);
da[k][1]=da[k<<1][1]+da[k<<1|1][1];
da[k][2]=da[k<<1][2]+da[k<<1|1][2];
da[k][3]=da[k<<1][3]+da[k<<1|1][3];
da[k][4]=da[k<<1][4]+da[k<<1|1][4];
da[k][5]=da[k<<1][5]+da[k<<1|1][5];
da[k][6]=da[k<<1][6]+da[k<<1|1][6];
da[k][7]=da[k<<1][7]+da[k<<1|1][7];
da[k][8]=da[k<<1][8]+da[k<<1|1][8];
da[k][9]=da[k<<1][9]+da[k<<1|1][9];
da[k][10]=da[k<<1][10]+da[k<<1|1][10];
da[k][11]=da[k<<1][11]+da[k<<1|1][11];
da[k][12]=da[k<<1][12]+da[k<<1|1][12];
da[k][13]=da[k<<1][13]+da[k<<1|1][13];
da[k][14]=da[k<<1][14]+da[k<<1|1][14];
da[k][15]=da[k<<1][15]+da[k<<1|1][15];
da[k][16]=da[k<<1][16]+da[k<<1|1][16];
da[k][17]=da[k<<1][17]+da[k<<1|1][17];
da[k][18]=da[k<<1][18]+da[k<<1|1][18];
da[k][19]=da[k<<1][19]+da[k<<1|1][19];
da[k][20]=da[k<<1][20]+da[k<<1|1][20];
da[k][21]=da[k<<1][21]+da[k<<1|1][21];
da[k][22]=da[k<<1][22]+da[k<<1|1][22];
da[k][23]=da[k<<1][23]+da[k<<1|1][23];
da[k][24]=da[k<<1][24]+da[k<<1|1][24];
da[k][25]=da[k<<1][25]+da[k<<1|1][25];
da[k][0]=da[k<<1][0]+da[k<<1|1][0];
}
void get(cri k,cri L,cri R){
if(ls[k]>=L&&R>=rs[k]){
for(re int i=0;i<26;i++)
t[i]+=da[k][i];
return;
}
if(f[k]!=-1){
f[k<<1]=f[k<<1|1]=f[k],
da[k<<1][0]=da[k<<1|1][0]=0,
da[k<<1][1]=da[k<<1|1][1]=0,
da[k<<1][2]=da[k<<1|1][2]=0,
da[k<<1][3]=da[k<<1|1][3]=0,
da[k<<1][4]=da[k<<1|1][4]=0,
da[k<<1][5]=da[k<<1|1][5]=0,
da[k<<1][6]=da[k<<1|1][6]=0,
da[k<<1][7]=da[k<<1|1][7]=0,
da[k<<1][8]=da[k<<1|1][8]=0,
da[k<<1][9]=da[k<<1|1][9]=0,
da[k<<1][10]=da[k<<1|1][10]=0,
da[k<<1][11]=da[k<<1|1][11]=0,
da[k<<1][12]=da[k<<1|1][12]=0,
da[k<<1][13]=da[k<<1|1][13]=0,
da[k<<1][14]=da[k<<1|1][14]=0,
da[k<<1][15]=da[k<<1|1][15]=0,
da[k<<1][16]=da[k<<1|1][16]=0,
da[k<<1][17]=da[k<<1|1][17]=0,
da[k<<1][18]=da[k<<1|1][18]=0,
da[k<<1][19]=da[k<<1|1][19]=0,
da[k<<1][20]=da[k<<1|1][20]=0,
da[k<<1][21]=da[k<<1|1][21]=0,
da[k<<1][22]=da[k<<1|1][22]=0,
da[k<<1][23]=da[k<<1|1][23]=0,
da[k<<1][24]=da[k<<1|1][24]=0,
da[k<<1][25]=da[k<<1|1][25]=0,
da[k<<1][f[k]]=rs[k<<1]-ls[k<<1]+1,
da[k<<1|1][f[k]]=rs[k<<1|1]-ls[k<<1|1]+1,
f[k]=-1;
}
re int mid=ls[k]+rs[k]>>1;
if(L<=mid) get(k<<1,L,R);
if(R>mid) get(k<<1|1,L,R);
}
void all(cri k){
if(ls[k]==rs[k]){
for(re int i=0;i<26;i++)
if(da[k][i]){
s[ls[k]]=i+'a';
return;
}
return;
}
if(f[k]!=-1){
f[k<<1]=f[k<<1|1]=f[k],
da[k<<1][0]=da[k<<1|1][0]=0,
da[k<<1][1]=da[k<<1|1][1]=0,
da[k<<1][2]=da[k<<1|1][2]=0,
da[k<<1][3]=da[k<<1|1][3]=0,
da[k<<1][4]=da[k<<1|1][4]=0,
da[k<<1][5]=da[k<<1|1][5]=0,
da[k<<1][6]=da[k<<1|1][6]=0,
da[k<<1][7]=da[k<<1|1][7]=0,
da[k<<1][8]=da[k<<1|1][8]=0,
da[k<<1][9]=da[k<<1|1][9]=0,
da[k<<1][10]=da[k<<1|1][10]=0,
da[k<<1][11]=da[k<<1|1][11]=0,
da[k<<1][12]=da[k<<1|1][12]=0,
da[k<<1][13]=da[k<<1|1][13]=0,
da[k<<1][14]=da[k<<1|1][14]=0,
da[k<<1][15]=da[k<<1|1][15]=0,
da[k<<1][16]=da[k<<1|1][16]=0,
da[k<<1][17]=da[k<<1|1][17]=0,
da[k<<1][18]=da[k<<1|1][18]=0,
da[k<<1][19]=da[k<<1|1][19]=0,
da[k<<1][20]=da[k<<1|1][20]=0,
da[k<<1][21]=da[k<<1|1][21]=0,
da[k<<1][22]=da[k<<1|1][22]=0,
da[k<<1][23]=da[k<<1|1][23]=0,
da[k<<1][24]=da[k<<1|1][24]=0,
da[k<<1][25]=da[k<<1|1][25]=0,
da[k<<1][f[k]]=rs[k<<1]-ls[k<<1]+1,
da[k<<1|1][f[k]]=rs[k<<1|1]-ls[k<<1|1]+1,
f[k]=-1;
}
re int mid=ls[k]+rs[k]>>1;
all(k<<1),all(k<<1|1);
}
int main(){
int x,y,z,o;
scanf("%d%d%s",&n,&m,s+1);
build(1,1,n);
for(re int i=1;i<=m;i++){
x=read();y=read();z=read();
o=x;
get(1,x,y);
if(z)
for(re int j=0;j<26;j++){
if(t[j]) be[j]=o,en[j]=o+t[j]-1,o=en[j]+1;
else be[j]=en[j]=0;
}
else
for(re int j=25;j>=0;j--){
if(t[j]) be[j]=o,en[j]=o+t[j]-1,o=en[j]+1;
else be[j]=en[j]=0;
}
memset(t,0,sizeof t);
add(1,x,y);
}
all(1);
for(re int i=1;i<=n;i++) putchar(s[i]);
}
'''
%%某不愿透露姓名的***(忽略背景,我什么也看不出来233)
(友情提醒:踢球需谨慎,生命价更高)
%%%天(舔)皇
最新文章
- css添加样式的四种方式
- mySql事务_ _Java中怎样实现批量删除操作(Java对数据库进行事务处理)?
- PHP 文件下载流程
- 【Apache】2.4.6版本的安装和配置
- python中的列表(list) 切片详解
- [009]C---关于输出文本的打印问题
- 动态加载JS文件,并根据JS文件的加载状态来执行自己的回调函数
- SqlBulkCopy使用介绍以及注意事项
- Get与POST的理解
- Thread类源码剖析
- Mysql清空表(truncate)与删除表中数据(delete)的区别
- 12.7 Test
- OCX ACTIVEX程序打包个人精典案例(OCX)
- Thread类中的join方法
- c# Tuple新特性
- Rsync同步设置的一例
- Tomcat漏洞利用与安全加固实例分析
- 搭建GlusterFS文件系统
- ASP.NET MVC 学习笔记-1.ASP.NET MVC 基础
- e651. 列出所有可用字体