P2572 SCOI2010 序列操作

2022-08-12 23:03:30 字數 777 閱讀 6748

這道題給你好多的01串,還有好多的區間統一賦值。

沒錯,你想到了什麼?

珂朵莉樹!

所以你就可以用珂朵莉樹很輕鬆地水過這道題了!

唯一要注意的是split的順序。必須先split右邊的,再split左邊的。

原因是先split左邊的時候,可能會因為split右邊而導致原迭代器被刪掉了,所以左邊的迭代器會是乙個非法的,會re。

然後就根本沒有問題了。

**:

#include#include#includeconst int maxn = 100005;

int n, m;

struct nodes

bool operator < (const nodes &rhs) const

};std::setchotholly;

#define it std::set::iterator

it split(int pos)

void assign(int l, int r, int x)

void revers(int l, int r)

int sum(int l, int r)

return ans;

}int coun(int l, int r)

else

}ans = std::max(ans, res);

return ans;

}int main()

n, 0));

while(m--)

return 0;

}

P2572 SCOI2010 序列操作

include include define n 100005 using namespace std int n,m struct seg t n 2 共13個成員 void rev int k 第k個點取反 在外層修改了取反標誌 void color int k,int v 第k個點全改成0 1...

P2572 SCOI2010 序列操作

對自己 rng 驕兵必敗 lpl 加油!題目描述 lxhgww最近收到了乙個01序列,序列裡面包含了n個數,這些數要麼是0,要麼是1,現在對於這個序列有五種變換操作和詢問操作 0 a b 把 a,b 區間內的所有數全變成0 1 a b 把 a,b 區間內的所有數全變成1 2 a b 把 a,b 區間...

P2572 SCOI2010 序列操作

線段樹神仙操作 珂朵莉樹基本操作?珂朵莉樹是不可能的,這輩子只會碼線段樹,只有線段樹神仙操作才刺激,debug之後ac才最快樂 這題我折騰了半個下午加半個晚上。維護的東西太多了。如果沒有區間反轉,這題很簡單,但是有反轉,所以既要維護1,又要維護0。tot記錄區間中1的個數 len記錄區間長度 l記錄...