zoukankan      html  css  js  c++  java
  • 爆零专场

    总分 60+15+0=75 rank5
    T1想主席树套树状数组,死活调不出来,后来发现内存炸了
    交的30暴力+30静态主席树
    T2暴力O(n4)加减枝 15
    T3 真心不会
    目前只改了T1
    正解:因为异或了opt,所以反解答案。。。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<cmath>
    #define N 200005
    using namespace std;
    
    int prime[100005],tot,id[1000005];
    bool vis[1000005];
    void init(){
        for(int i=2;i<=1000000;i++){
            if(!vis[i]){prime[++tot]=i;id[i]=tot;}
            for(int j=1;j<=tot&&i*prime[j]<=1000000;j++){
                vis[i*prime[j]]=1;
                if(i%prime[j]==0)break;
            }
        }
    }
    
    int n,m,k,a[200005],b[200005];
    bool bo;
    int main(){
        init();
        scanf("%d%d%d",&n,&k,&m);
        for(int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        int opt,l,r,ans=0,lo,ll,lr;
        while(m--){
            scanf("%d%d%d",&opt,&l,&r);
            if(bo){
                if(id[opt^1])ans=opt^1;
                else ans=opt^2;
                printf("%d
    ",ans);
                bo=0;
            }
            opt^=ans; l^=ans; r^=ans;
            if(opt==1){bo=1;lo=opt;ll=l;lr=r;}
            if(opt==2){a[l]=r;}
        }
        if(bo){
            int len=lr-ll+1,num=0;
            for(int i=1;i<=len;i++)b[i]=a[ll+i-1];
            sort(b+1,b+len+1);
            for(int i=1;i<=len;i++){
                if(id[b[i]])num++;
                if(num==k){ans=b[i];break;}
            }
            printf("%d
    ",ans);
        }
        return 0;
    }

    还要多学啊!!!

  • 相关阅读:
    mysql密码重置
    利用python生成定制二维码
    totnado前后端分离跨域设置
    supervisor详解
    redis持久化常识和配置
    redis数据的备份与恢复
    supervisor下更换源文件报错
    EF5框架封装
    IEnumerable和IEnumerator 详解
    心宽,路自宽
  • 原文地址:https://www.cnblogs.com/Ren-Ivan/p/7746659.html
Copyright © 2011-2022 走看看