SDOI2008校門外的區間

2021-08-16 01:38:25 字數 1118 閱讀 8668

這道題作為前天的模擬賽題,考場上我在還剩乙個半小時的情況下居然選擇求穩打暴力,水過了40分,然後就坐看cansult和refun這倆dalaoak...

一開始我的想法是,把區間看成兩點之間不包含端點的小區間和端點構成的集合,然後分開處理,這個做法可能暴力還是可以的,然而如果要用線段樹的話,就要開兩顆線段樹

正確做法應該是把每個點拆成三個點,)就是標記第乙個點,】和【就是標記第二個點,(就是標記第三個點

然後我還把資料範圍》=0看成》=1,最後的輸出也很容易出錯

#include#include#include#define ls ((root<<1)+1)

#define rs ((root<<1)+2)

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

using namespace std;

int n,n,a[400000];

struct orderq[200001];

struct nodetree[2000000];

void init()

}void pushdown(int root)

void mul(int root,int l,int r,int l1,int r1,int val)

pushdown(root);

if (l1<=mid) mul(ls,l,mid,l1,r1,val);

if (r1>mid) mul(rs,mid+1,r,l1,r1,val);

}void add(int root,int l,int r,int l1,int r1,int val)

pushdown(root);

if (l1<=mid) add(ls,l,mid,l1,r1,val);

if (r1>mid) add(rs,mid+1,r,l1,r1,val);

}int query(int root,int l,int r,int pos)

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

build(ls,l,mid);

build(rs,mid+1,r);

}int main()

if (q[i].type==2)

if (q[i].r=1)

if (q[i].r

BZOJ3226 SDOI2008 校門外的區間

sdoi2008 校門外的區間 time limit 10 sec memory limit 128 mb description 受校門外的樹這道經典問題的啟發,a君根據基本的離散數學的知識,抽象出5種運算維護集合s s初始為空 並最終輸出s。現在,請你完成這道校門外的樹之難度增強版 校門外的區間...

SDOI2008 燒水問題

把總質量為1kg的水分裝在n個杯子裡,每杯水的質量均為 1 n kg,初始溫度均為0 現需要把每一杯水都燒開。我們可以對任意一杯水進行加熱。把一杯水的溫度公升高t 所需的能量為 4200 t n j,其中,j 是能量單位 焦耳 如果一旦某杯水的溫度達到100 那麼這杯水的溫度就不能再繼續公升高,此時...

SDOI2008 洞穴勘測

lct維護連通性型別的題目,主要是要搞清楚findroot函式的作用 判斷根是否相同,和並查集裡面的find 函式有異曲同工之妙,如果根相同可以認為兩個點具有連通性。先access打通一道到x的實邊,現在x是深度最大的節點。然後再splay x到根節點,因為它深度最大,這個時候它只有左子樹。所以找它...