hzoi欢乐时刻(持续更新)

%%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)

(友情提醒:踢球需谨慎,生命价更高)

 %%%天(舔)皇

 

 


 

转载于:https://www.cnblogs.com/mikufun-hzoi-cpp/p/11252255.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值