傳送門~
每個任務(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。同一時間可能有多個任務同時執行,它們的優先順序可能相同...