SHOI2015 腦洞治療儀

2022-05-25 12:54:10 字數 706 閱讀 8973

洛谷題目鏈結

珂朵莉樹吼啊!!!

對於操作$0$,其實就是區間賦值為$0$的操作,直接套模板就行了

對於操作$1$,應該是這個題目最難的操作了(雖然還是很簡單),我們先查詢$(l_0,r_0)$這個區間的$1$的數量,最後掃一遍$(l_1,r_1)$這個區間,如果$1$的數量夠的話直接更改區間值,如果不夠的話就把其中夠的那塊區間賦值就行了,詳細看**

對於操作$2$,直接模板查詢就行了

**:

#include#include#include#include#include#define set set::iterator

#define n 200007

using namespace std;

struct node

node(int l):l(l){}

bool operator<(const node &it)const

void change(int l,int r,int v)

void hos(int l1,int r1,int l2,int r2) }}

int search(int l,int r)

int main()

if(opt==2)

printf("%d\n",search(l,r));

} return 0;

}

SHOI2015 腦洞治療儀

我太sb啦 合併的時候又漏了,又漏了,又漏了 我個sb 這是個板子題,並不知道為什麼shoi2015會考這麼板子的題,但是我又sb了,又sb了,又sb了,又沒有1a 顯然我是涼了 這道題有三個操作 區間清零 將乙個區間清零,之後補到另乙個區間去,但是有可能補不滿 詢問乙個區間內最大全零子串 顯然這都...

SHOI2015 腦洞治療儀

嘟嘟嘟 這題其實就是乙個線段樹維護最大連續和的水題。別的操作不說,操作1只要二分找區間前 k 個0即可。需要注意的是,因為操作1兩區間可能有交,因此要先清空再二分查詢 複雜度 o n log 2 n include include include include include include in...

SHOI2015 腦洞治療儀 題解 (線段樹)

題目鏈結 題目大意 給定乙個只含 0 和 1 的序列。有三種操作 1.把 l,r 內所有數改為 0 2.把 l,r 內所有 1 拿走來填 l r 內所有 0 多了丟掉,少了優先從左開始填 3.查詢 l,r 內最長的 0 串。一眼能看出來考最大子段和。但是 好難調啊qaq 對於一段序列,我們要維護 4...