主席樹 CQOI2015 任務查詢系統

2022-05-25 02:33:09 字數 1353 閱讀 2063

模板題...

差分,然後用主席樹維護時間點上的優先值和就好了

就是細節煩...

1 #include2

#define int long long

3#define mid (l+r>>1)

4#define writeln(x) write(x),puts("")

5#define writep(x) write(x),putchar(' ')

6using

namespace

std;

7 inline int

read()

10while(isdigit(chr))

11return ans*f;

12 }void write(int

x)const

int m = 2e5+5

; 17

int rt[m*20],s[m*20],ls[m*20],rs[m*20],cnt[m*20

],n,m,lst,x,y,k,a[m],b[m],t;

18 vectoraa[m],bb[m];

19void update(int &x,int y,int l,int r,int p,int

opt)

25int query(int x,int l,int r,int

k)31

signed main()sort(b+1,b+n+1);int len=unique(b+1,b+n+1)-b-1;37

for(int i=1,pos;i<=m;i++)

43for(int j=0;j)

47 }lst=1;48

while(m--)return0;

54 }

然而悲傷的是:洛谷上暴力跑的最快惹qaq,排行榜第一頁全是暴力,轉行打暴力吧

upd:經測試bzoj上暴力跑得也賊快,上了第一頁

貼一下暴力**:

#include#define re register int

using

namespace

std;

inline

intread()

while(isdigit(chr))

return ans*f;

}const

int n=1e5+10

;struct pa[n];

int n,m,sum;long

long ans=1

;inline

bool cmp(const p&a,const p&b)

intmain()

return0;

}

CQOI2015 任務查詢系統 主席樹

最近實驗室正在為其管理的超級計算機編制一套任務管理系統,而你被安排完成其中的查詢部分。超級計算機中的任務用三元組 si,ei,pi 描述,si,ei,pi 表示任務從第si秒開始,在第ei秒後結束 第si秒和ei秒任務也在執行 其優先順序為pi。同一時間可能有多個任務同時執行,它們的優先順序可能相同...

CQOI2015 任務查詢系統(主席樹 差分)

這是一道好題 可以更深的理解主席樹 最初的想法是 一開始 一邊加入任務 一邊維護時間軸 換句話說 對於每個時間點 我們都想維護一顆權值線段樹 這裡的權值代表著優先順序pi 相當於對於乙個任務 我們要維護ei si棵 然而顯然mle 考慮降維 聯想到主席樹建樹方式是通過字首和來的 既然是求字首和 這道...

CQOI2015 任務查詢系統

因為對於任務來說,對一段區間是有用的,於是我們可以用差分來表示區間,然後主席樹維護字首區間和即可。然後因為我們是求和,我們同時主席樹也要維護區間的數字個數,因為求k小和。但是有可能當前區間的有a個相同的數字,我們求b個和,然後bac pragma gcc optimize 2 include def...