水題,但是裸的線段樹複雜度太高,要用帶標記的線段樹,第一次寫這種題,也算來打個備忘。
每訪問到乙個結點就先傳一下標記,然後每次修改某個點的標記時再傳一下標記。
不過我各種常數優化都試過可怎麼就第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 在大學期間,經常需要租借教室。大到院系舉辦活動,小到學習小組自習討論,都需要 向學校申請借教室。教室的大小功能不同,借教室人的身份不同,借教室的手續也不一樣。面對海量租借教...