FJUT 借教室 線段樹區間查詢 區間修改

2022-05-20 16:40:32 字數 987 閱讀 8397

解題思路:看到題目,經典的區間查詢+區間修改,我們用線段樹維護一段區間的最小值,每當有新的訂單,我們就先查詢訂單時間範圍內的最小教室數量,然後與dj作比較,如果比dj小,那麼我們可以標記為false,然後後面的操作都不用看了,因為他只要求輸出第乙個不滿足的訂單,否則就按照訂單進行區間修改,即在該訂單的開始時間和結束時間這個範圍內都減少dj個教室。

code:

#includeusing namespace std;

typedef long long ll;

const int inf = 0x3f3f3f3f3f3f3f3f;

const int n = 1000005;

ll a[n],tree[n<<2],lazy[n<<2];

int n,m;

void pushup(int k)

void pushdown(int k)

}void build(int l,int r,int k)

else

}void updata(int l, int r, int v, int l, int r,int k)

else

if(r > mid)

pushup(k); }}

ll query(int l,int r,int l,int r,int k)

else

if(r > mid)

return res; }}

int main()

build(1,n,1);

int fg = 0;//這個標記是否已經不滿足條件

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

else

} if(!fg)

else

return 0;

}

NOIP 借教室(線段樹)

題解明天寫 因為今天腦子好像沒了 來了 ps 該題正解是貪心。用線段樹做的原因是被坑了。區間修改,記錄乙個treemin,當treemin 0就輸出答案。洛谷95分 codevs ac的 include include include include define lson num 1,l,mid ...

NOIP2012借教室 (線段樹區間操作)

輸入檔案 classrooms.in輸出檔案 classrooms.out簡單對比 時間限制 1 s 記憶體限制 128 mb 在大學期間,經常需要租借教室。大到院系舉辦活動,小到學習小組自習討論,都需要 向學校申請借教室。教室的大小功能不同,借教室人的身份不同,借教室的手續也不一樣。面對海量租借教...

NOIP 2012 借教室 線段樹

水題,但是裸的線段樹複雜度太高,要用帶標記的線段樹,第一次寫這種題,也算來打個備忘。每訪問到乙個結點就先傳一下標記,然後每次修改某個點的標記時再傳一下標記。不過我各種常數優化都試過可怎麼就第20個點還超15ms 難不成是蒟蒻光環專屬特效?include include include using n...