NOIP2012 借教室 (線段樹)

2021-08-10 09:10:24 字數 1440 閱讀 5955

//author: hany01

//date: nov 5th. 2017

#include

#define for(i , j , k) for (int i = (j) , i##_end_ = (k) ; i <= i##_end_ ; ++ i)

#define fordown(i , j , k) for (int i = (j) , i##_end_ = (k) ; i >= i##_end_ ; -- i)

#define set(a , b) memset(a , b , sizeof(a))

#define lc (t << 1)

#define rc (lc | 1)

#define mid ((l + r) >> 1)

#define pb push_back

#define inf (0x3f3f3f3f)

#define mod (1000000007)

using

namespace

std;

typedef

long

long ll;

template

inline

bool chkmax(t &a , t b)

template

inline

bool chkmin(t &a , t b)

int _ , __;

char c_;

inline

int read()

inline

void file()

const

int maxn = 1000010;

int tr[maxn << 2], addv[maxn << 2], n, m, dt, x, y;

inline

void maintain(int t)

inline

void pushdown(int t)

void build(int t, int l, int r)

build(lc, l, mid); build(rc, mid + 1, r);

maintain(t);

}void update(int t, int l, int r)

pushdown(t);

if (x <= mid) update(lc, l, mid);

if (y > mid) update(rc, mid + 1, r);

maintain(t);

}int main()

}puts("0");

return0;}

//靜夜四無鄰,荒居舊業貧。

//雨中黃葉樹,燈下白頭人。

//以我獨沉久,愧君相見頻。

//平生自有分,況是霍家親。

//--司空曙《喜見外弟盧綸見宿》

NOIP 2012 借教室 線段樹

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

NOIP2012 借教室 線段樹

題目鏈結 看這道題的時候,題目中的借教室我們可以看作是區間修改,如果有一天不符合的話都不行,第一反應就是線段樹,維護最小值,查詢的時候看是否滿足要求,滿足的話就區間修改。以此類推,直到出現不滿足的情況。但是由於常數問題還是要o2優化才能過,不然只有95分。如下 includeusing namesp...

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

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