NOIP 2012 借教室 線段樹

2021-06-29 03:15:06 字數 708 閱讀 3907

水題,但是裸的線段樹複雜度太高,要用帶標記的線段樹,第一次寫這種題,也算來打個備忘。

每訪問到乙個結點就先傳一下標記,然後每次修改某個點的標記時再傳一下標記。

不過我各種常數優化都試過可怎麼就第20個點還超15ms……(難不成是蒟蒻光環專屬特效?)

#include #include #include using namespace std;

#define read freopen("classroom.in","r",stdin)

#define write freopen("classroom.out","w",stdout)

const int maxn=1000005;

int n,m,a[maxn],t[maxn*4],tip[maxn*4],x,y,k;

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

}void push(int p)

void check(int l,int r,int p)

int mid=(l+r)>>1;

check(l,mid,p+p);check(mid+1,r,p+p+1);

t[p]=min(t[p+p],t[p+p+1]);

}int get()

int main()

} printf("0\n");

return 0;

}

NOIP2012 借教室 (線段樹)

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...

NOIP2012 借教室 線段樹

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

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

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