CE求调
  • 板块灌水区
  • 楼主FuckYouJinhai
  • 当前回复8
  • 已保存回复8
  • 发布时间2022/12/25 12:05
  • 上次更新2023/10/24 06:41:18
查看原帖
CE求调
912248
FuckYouJinhai楼主2022/12/25 12:05

不是哪一题,自己随手打的

#include <bits/stdc++.h>
using namespace std;

uint32_t change_num=0;

struct node{
    vector<pair<uint32_t,int>>vec;
}arr[114514];

inline void init_node(const uint32_t at,const int val){
    arr[at].vec.clear();
    arr[at].vec.push_back(make_pair(0,val));
}

inline void change_node(const uint32_t at,const int val){
    change_num+=1;
    arr[at].vec.push_back(make_pair(change_num,val));
}

inline int get_val(const uint32_t at,const uint32_t vers){
    return arr[at].vec[ 
        (upper_bound(arr[at].vec.begin(),arr[at].vec.end(),vers) - arr[at].vec.begin()) --
    ].second;
}

uint32_t n,tmp,t,opt,p,vs,vl;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(nullptr);
    cin>>n>>t;
    for(uint32_t i=1;i<=n;++i){
        cin>>tmp;
        init_node(i,tmp);
    }
    while(t--){
        cin>>opt>>p>>vs;
        if(opt==1){
            cout<<get_val(p,vs)<<"\n";
        }else{
            cin>>vl;
            change_node(p,get_val(p,vs)+vl);
        }
    }
    return 0;
}
2022/12/25 12:05
加载中...