Wannafly模擬賽3 監視任務(貪心 線段樹)

2021-08-09 08:31:57 字數 1118 閱讀 6442

思路:把所有約束按照右端點排序。這樣每乙個前面的約束區間[l1,r1],與後面的乙個約束區間[l2,r2]的交,一定為[max(l1 ,l2 ),r1]。對於排序後的區間依次滿足約束,假設當前列舉到的約束還沒有滿足,就不斷把對應區間中最右端的0改為1,這些過程可以用線段樹維護來完成。時間複雜度o((n + m)logn)。

// 監視任務 執行/限制:898ms/2000ms

#include #include #include #include using namespace std;

#define lson le,mid,root<<1

#define rson mid+1,rig,root<<1|1

struct node

}a[1000005];

int sum[500005 << 2];

int book[500005];

void pushup(int root)

void build(int le, int rig, int root)

int mid = (le + rig) >> 1;

build(lson);

build(rson);

pushup(root);

}int query(int l, int r, int le, int rig, int root)

int re = 0;

int mid = (le + rig) >> 1;

if (l <= mid)

if (r > mid)

return re;

}void update(int pos, int le, int rig, int root)

int mid = (le + rig) >> 1;

if (pos <= mid)

else

pushup(root);

}int main()

build(1, n, 1);

sort(a, a + m);

for (int i = 0; i < m; i++)

} printf("%d\n", ans);

} return 0;

}

Wannafly模擬賽4 題解

a fst是一名可憐的小朋友,他很強,但是經常fst,所以rating一直低迷。但是重點在於,他非常適合acm!並在最近的區域賽中獲得了不錯的成績。拿到獎金後fst決定買一台新筆記本,但是fst發現,在 能承受的範圍內,筆記本的記憶體和速度是不可兼得的。可是,有一些筆記本是被另外一些 完虐 的,也就...

Wannafly 模擬賽A Laptop 樹狀陣列

題解 樹狀陣列 二維偏序。要同時滿足i.a j.a,i.b j.b才算完虐,然後這道題不想求逆序數那樣可以求出多對逆序,這道題只能求出多少個被完虐。所以我們排完第乙個序列之後就給編號,然後排序第二個序列,再離散化,然後就進入像計算逆序數那樣計算了,但是這裡有點不同,因為是要同時滿足i.a j.a,i...

Wannafly模擬賽3 生物課程

思路 水題,按照三種無向圖的結構特點判斷,具體為判斷節點度數 x有乙個4度節點,其他的節點最多為2度 y有乙個3度節點,其他的節點最多為2度 i的節點度數最多為2度。還可以看出另乙個約束條件為 圖是連通的,加上沒有重邊和自環的限制,其實就是說明三種圖均為樹形結構。生物課程2 執行 限制 27ms 1...