[TIOJ] 1827 Yet another simple task ^____^
題目連結: https://tioj.ck.tp.edu.tw/problems/1827 人生第一次寫了持久化資料結構>< ! 不過是參考了cbd的code才順利寫出來的。 b[i]的範圍在1e5以內所以不用離散話,二分搜答案,建持久化線段樹。 # include<bits/stdc++.h> using namespace std; const int N = 100000+10; struct node{ int val; node *l,*r; node( int v) { val = v; l = r = NULL; } }*root[N]; node* build( int L, int R) { if (L == R) return ( new node(0) ); int mid = (L+R)>>1; node *v = new node(0); v -> l = build(L,mid); v -> r = build(mid+1,R); return v; } node* modify( int L, int R,node* u, int pos ) { if (L == R) return ( new node(u -> val+1) ); node* v = new node(0); int mid = (L+R)>>1; if ( pos <=mid) { v -> r = u -> r; v -> l = modify(L,mid,u -> l, pos ); } else { v -> l = u -> l; v -> r = modify(mid+1,R,u -> r, pos ); } v -> val = v -> l -> val+v -> r -> val; re