time limit: 20 sec
memory limit: 512 mb
submit: 1191
solved: 437 [
submit][
status][
discuss]
最近實驗室正在為其管理的超級計算機編制一套任務管理系統,而你被安排完成其中的查詢部分。
超級計算機中的任務用三元組(si,ei,pi)描述,(si,ei,pi)表示任務從第si秒開始,在第ei秒後結束(第si秒和ei秒任務也在執行),其優先順序為pi。同一時間可能有多個任務同時執行,它們的優先順序可能相同,也可能不同。排程系統會經常向查詢系統詢問,第xi秒正在執行的任務中,優先順序最小的ki個任務(即將任務按照優先順序從小到大排序後取前ki個)的優先順序之和是多少。特別的,如果ki大於第xi秒正在執行的任務總數,則直接回答第xi秒正在執行的任務優先順序之和。上述所有引數均為整數,時間的範圍在1到n之間(包含1和n)。
輸入檔案第一行包含兩個空格分開的正整數m和n,分別表示任務總數和時間範圍。
接下來m行,每行包含三個空格分開的正整數si、ei和pi(si≤ei),描述乙個任務。
接下來n行,每行包含四個空格分開的整數xi、ai、bi和ci,描述一次查詢。查詢的引數ki需要由公式 ki=1+(ai*pre+bi) mod ci
計算得到。其中pre表示上一次查詢的結果,對於第一次查詢,pre=1。
輸出共n行,每行乙個整數,表示查詢結果。
4 31 2 6
2 3 3
1 3 2
3 3 4
3 1 3 2
1 1 3 4
2 2 4 328
11樣例解釋
k1 = (1*1+3)%2+1 = 1
k2 = (1*2+3)%4+1 = 2
k3 = (2*8+4)%3+1 = 3
對於100%的資料,1≤m,n,si,ei,ci≤100000,0≤ai,bi≤100000,1≤pi≤10000000,xi為1到n的乙個排列
[ submit][
status][
discuss]
用主席樹解決
對時間建立主席樹,每個節點儲存當前值域含有的值的總數以及他們的和
這樣每個任務就拆為si、ei兩處的乙個+操作和乙個-操作
然後查詢
空間開小:運算元*2所以空間應該2*nlogn...
查詢出錯:每個時間可能有多個重複優先順序任務,所以查詢需要特判這一點,否則出差錯
#include#include#include#include#include#include#include#includeusing namespace std;
typedef long long ll;
const int maxn = 2e5 + 10;
struct datac[maxn*20];
ll num[maxn];
int n,m,cnt,cur = 1,lc[maxn*20],rc[maxn*20],root[maxn];
vector v[maxn];
ll getll()
int abs(int x)
int insert(int o,int l,int r,int po)
ll query(int o,int l,int r,int k)
int main()
sort(num + 1,num + m + 1);
for (int i = 2; i <= m; i++)
if (num[i] != num[i-1])
num[++cur] = num[i];
for (int i = 1; i <= n; i++)
for (int j = 0; j < v[i].size(); j++)
for (int i = 1; i <= n; i++)
} else root[i] = root[i-1]; }
ll pre = 1;
for (int i = 0; i < n; i++)
return 0;
}
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。同一時間可能有多個任務同時執行,它們的優先順序可能相同...
CQOI2015 任務查詢系統
因為對於任務來說,對一段區間是有用的,於是我們可以用差分來表示區間,然後主席樹維護字首區間和即可。然後因為我們是求和,我們同時主席樹也要維護區間的數字個數,因為求k小和。但是有可能當前區間的有a個相同的數字,我們求b個和,然後bac pragma gcc optimize 2 include def...