bzoj 3932 任務查詢系統

2021-08-14 16:26:24 字數 848 閱讀 6866

傳送門~

每個任務(si,ei,pi),在si的位置加入pi,在ei+1的位置刪掉pi,這樣取字首和就能表示每個點包含的所有數。

將每個任務拆成兩個操作:在si加pi和在ei減pi。將所有操作排序後按操作建主席樹。

然後還需要求個to陣列,存詢問中的每個時間點要在哪棵樹中查詢。

可能會有重複的數,所以在查詢到最底層的時候需要判一下。因為這個東西wa了好久。。。mdzz

**:

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace

std;

struct ldx*null=new node(0,0,0),*root[200005];

node:: node(ll _,ll __,ll ___)

ll to[100005];

ll n,m,tot,xx,u;

ll ans=1;

void build(node* p,node* &t,ll lx,ll ly)

else

}ll srch(node* p,ll k)

void sett()

int main()

sort(s+1,s+tot+1);sett();

for(ll i=1;i<=tot;i++)

ll tp=0;

for(ll i=1;i<=n;i++)

return

0;}

BZOJ3932 任務查詢系統

題意 懶得說了自己看吧 ac通道 題解 哎隨便扯兩句吧,一看就知道是主席樹。先離散化,然後對於每個任務,在其左端點插入,右端點刪除,每個詢問只需稍微處理一下就可以了 include using namespace std typedef long long ll typedef double db ...

BZOJ3932 CQOI2015 任務查詢系統

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

bzoj3932 CQOI2015 任務查詢系統

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