洛谷題目鏈結
珂朵莉樹吼啊!!!
對於操作$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...