首页 > 其他分享 >20230424小记

20230424小记

时间:2023-04-25 14:55:50浏览次数:32  
标签:20230424 ch return int 呜呜 read getchar 小记

闲话

今天还是体育的一天
明天就要送别可爱同桌了
呜呜呜呜呜呜呜呜呜呜呜呜
她去济南了呜呜呜呜呜呜呜呜呜呜呜呜

冰糖老婆的精神状态好像不太正常
哭唧唧

调代码需要的信息提取能力也太高了()

听中 V 调代码效率↓/cf

调了昨天的题,复习了平衡树,然后调了一年。
第二天的升旗仪式上想出来的...

// Problem: P6136【模板】普通平衡树(数据加强版)
// Contest: Luogu
// URL: https://www.luogu.com.cn/problem/P6136
// Memory Limit: 89 MB
// Time Limit: 3000 ms
#include<bits/stdc++.h>
using namespace std;
template<class T>void read(T &x){
    x=0;int f=0;char ch=getchar();
    while(ch<'0'||ch>'9')  {f|=(ch=='-');ch=getchar();}
    while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
    x=f?-x:x;return;
}
const int N=1e5+5,M=1e6+5;
int n,m;
namespace FHQ_Treap{
    int cnt,root;
    struct node{int l,r,val,siz,key;}a[N+M];
    int new_node(int val){
        a[++cnt]=(node){0,0,val,1,rand()};return cnt;
    }
    void pushup(int x){
        a[x].siz=a[a[x].r].siz+a[a[x].l].siz+1;
    }
    void split(int k,int x,int &l,int &r){
        if(!k) {l=r=0;return ;}
        if(a[k].val<=x){l=k;split(a[k].r,x,a[k].r,r);}
        else {r=k;split(a[k].l,x,l,a[k].l);}
        pushup(k);
    }
    int merge(int l,int r){
        if(!l||!r){
            return (l+r);
        }
        if(a[l].key<=a[r].key){
            a[l].r=merge(a[l].r,r);
            pushup(l);return l;
        }
        else {
            a[r].l=merge(l,a[r].l);
            pushup(r);return r;
        }
    }
    int kth(int x,int k){
        if(a[a[x].l].siz+1==k) return x;
        if(a[a[x].l].siz>=k) return kth(a[x].l,k);
        return kth(a[x].r,k-a[a[x].l].siz-1);
    }
}
using namespace FHQ_Treap;

int main(){
    mt19937 srand(114514111);
    read(n),read(m);
    for(int i=1;i<=n;i++){
        int t,r1,r2;
        read(t);
        split(root,t,r1,r2);
        int tmp=new_node(t);
        root=merge(merge(r1,tmp),r2);
    }
    int lastans=0,sumans=0;
    while(m--){
        int op,x;
        read(op),read(x);x^=lastans;
        if(op==1){
            int r1,r2;
            split(root,x,r1,r2);
            int tmp=new_node(x);
            root=merge(merge(r1,tmp),r2);
        }
        if(op==2){
            int r1,r2,r3;
            split(root,x,r1,r2);
            split(r1,x-1,r1,r3);
            root=merge(merge(r1,merge(a[r3].l,a[r3].r)),r2);
        }
        if(op==3){
            int r1,r2;
            split(root,x-1,r1,r2);
            lastans=a[r1].siz+1;
            sumans^=lastans;
            root=merge(r1,r2);
        }
        if(op==4){
            lastans=a[kth(root,x)].val;
            sumans^=lastans;
        }
        if(op==5){
            int r1,r2;
            split(root,x-1,r1,r2);
            lastans=a[kth(r1,a[r1].siz)].val;
            root=merge(r1,r2);
            sumans^=lastans;
        }
        if(op==6){
            int r1,r2;
            split(root,x,r1,r2);
            lastans=a[kth(r2,1)].val;
            root=merge(r1,r2);
            sumans^=lastans;
        }
    }
    cout<<sumans<<endl;
    return 0;
}

标签:20230424,ch,return,int,呜呜,read,getchar,小记
From: https://www.cnblogs.com/Artemis-lx/p/17352582.html

相关文章

  • 【20230424】logstash生产开发总结汇总
    logstash生产开发总结汇总本文主要讲使用Logstash生产开发操作、遇到问题及处理时间:20230424logstash版本:logstash7.8.1官网:https://www.elastic.co/cn/logstash/目录logstash生产开发总结汇总一、基础开发简单的启动脚本字段过滤解析Json嵌套时间转换类templa......
  • sb+activiti7实例<二>20230424
    一、版本问题 原Activiti的TijsRademakers团队去开发Flowable框架。现Activiti7是Salaboy团队开发的,内核使用的还是Activiti6,扩展了云化。Activiti5、Activiti6代码目前由Salaboy团队代为维护,目前官宣已经暂停维护  Activiti:Activiti在目前来看有点不思进取,核心功能......
  • idea--工作流activiti插件<->20230424
    idea2019集成activiti,ideaactiviti新建bpmn文件,解决ideaactiviti中文乱码 idea在线安装activiti插件1.File-->Settings2.点击Plugins,右侧界面点击Marketplace后在搜索框搜索actiBPM注:网络原因没有加载出来,实属抱歉.按钮请各位看官自行脑补 -_-! ......
  • 20230423小记
    没有耳机我要死了耳机没电了回家充电忘带回来了哼哼啊啊啊啊啊闲话虽然中午的活动很有趣,但是八卦很无聊,尤其是我不感兴趣的八卦。打球很开心,但是不会温柔的打球。和lzy贴贴很开心。每日一问,同桌和她的学长什么时候。晚上还要上课麻。太他妈累了,可能需要睡一会。想睡觉是......
  • 最小割树小记
    最小割树是一种支持动态查询两点间最小割的结构。构造任意选两个点\(s,t\),在全图上跑出\(s\tot\)的最小割\(w\),建立边\((s,t,w)\)。设残量网络上与\(s\)连通的部分为\(S\),与\(t\)连通的部分为\(T\),则将图分成\(S,T\)两个点集,并在两个点集上做类似的事情,直到点集......
  • kafka业务数据到ODS层处理小记
    kafka业务数据到ODS层处理小记1:kafka消息partition分区,应以表主键为key2:kafka消息落地后,同一批次数据中取主键+offset最大的一条,再删除基础数据中此批次数据,最后将此批次数据按数据处理类型(delete、insert、update),先insert、update,再delete。......
  • 20230417小记
    感觉每天开一个还是太麻烦了()应该会合并一下。20230417闲话感觉有点找到状态了,虽然在某些时候会被打回原形。早上同桌换衣服了在操场上走了半圈没认出来。明天争取跑两圈()。什么时候能跑三圈啊(思索)想和同学打球了。感觉羽毛球太有意思了。就是说很喜欢一起的友好的感觉。菜也......
  • 群论小记
    定义群:一个集合\(G\),和一个定义在其元素上的二元运算,这里记为\(*\)。群需要满足的性质:封闭性:\(\foralla,b\inG,a*b\inG\)单位元:\(\existe\inG,\foralla\inG,a*e=a\)逆元:\(\foralla\inG,\existb\inG,a*b=e\),将这里的\(b\)记作\(a^{-1}......
  • 20230414小记
    所以我选择被人讨厌————纯白↑快来一起听感受相仿的情绪。如果你可以共情。现在发现自己的精神状态真的堪忧。感觉被拉扯着还前进不了。看看成绩就突然不想活了。没意思。何必被牵扯着前进呢。在想学文化课的时候被竞赛打乱,在学竞赛的时候天天被磨叨文化课。被别人的......
  • 数学小记
    发现自己数学好菜好菜=_=反演莫比乌斯反演莫比乌斯函数\[\mu(n)=\begin{cases}1,&n=1\\(-1)^r,&n=p_1p_2…p_r\\0,&else\end{cases}\]莫比乌斯反演的一般形式\[f(n)=\sum_{d|n}g(d)\Leftrightarrowg(n)=\sum_{d|n}\mu(d)f({n\overd})\]\[f(n)=\sum......