原创 【BZOJ1858】[Scoi2010]序列操作 線段樹

線段樹裸(shen)題…… 題意:對01串進行五種操作:0、清零;1、清一;2、取反(flip);3、詢問區間內'1'的個數;4、詢問區間內最多的連續的'1'的個數。 果然,看完前四個操作,我感覺我看到了一個 bitset 裸題~。既然有

原创 【BZOJ2631】tree Link-Cut-Tree

題意就是將BZOJ1798的數列的操作改成了樹的操作。大體相似,用 Link -Cut-Tree 維護。 貌似細節不少的樣子呢……一定要細心……當年這道題調了好久的說……//其實是我太渣了 update 函數裏忘記了加 maintain(

原创 【USACO2008】Gold Pearl Pairing

對於這道當年的金組題,第一反應解法:一個大根堆&一個小根堆,維護每一種顏色的珠子個數,每一次用大根堆頂元素和小根堆頂元素匹配並輸出……事實上,曾經有許多大神用這種方法AC此題,代碼長度 2000 B+!!! 事實上,正解的做法沒有更水!!

原创 【BZOJ1015】[JSOI2008]星球大戰starwar 並查集

只需離線反向維護並查集,建立被摧毀的邊,並更新答案…… [JSOI2008]星球大戰starwar C++代碼實現: #include <cstdio> #include <cstring> #include <iostream> #in

原创 【BZOJ1798】[Ahoi2009]Seq 維護序列seq 線段樹

簡單的線段樹+lazy標記下傳。 維護加法和乘法兩個標記。注意當標記下傳時要先乘後加。 寫代碼時稍稍注意一點點就不會有大問題。 簡單題,細節參見下方C++代碼好了: #include <cstdio> #include <cstring>

原创 【BZOJ2761】[JLOI2011]不重複數字 STL set

爲什麼我沒有趕上那時的有小A的煩惱和不重複數字的JLOI,現在的JLOI都考2048和天天酷跑了!現在的JLOI都考Cheat(只考慮水平光照)50分的鏡面通道了!(我承認JLOI仍然很弱,但是我當時在那個陽光明媚的四月纔剛剛學會最短路.

原创 【BZOJ1038】[ZJOI2008]瞭望塔 計算幾何 半平面交/模擬退火+二分

對於我們不會半平面交的人啊,處理此類題最好的方式還是模擬退火。數據量較大,於是使用二分優化判斷過程。這樣,雖在時間複雜度上稍遜一籌,但在代碼量上可以說是較爲優秀的! 確定了思路,後面的問題迎刃而解! 對於瞭望塔所處的位置進行模擬退火,對於

原创 【BZOJ1269】[AHOI2006]文本編輯器editor Splay

仍然是Splay模板題,水化版 1500 。讓我們重寫一下 1500 的主函數,然後盡情地往下刪除該死的第三個操作和第六個詢問的噁心代碼!!! 需要注意的是,每一次移動光標並不需要將此處Splay到根節點,在進行其他操作時再Splay即可

原创 【BZOJ3631】[JLOI2014]松鼠的新家 樹鏈剖分

一眼看去,就是樹鏈剖分無差了!!! 松鼠的新家是一棵樹。我們要求出每一個房間被訪問的次數,也就是我們要在每一次從一個房間出發到達另一個房間的過程中對於路徑上的節點權值進行+1操作。 用線段樹+lazy標記維護點權。 樹鏈剖分部分請參看【算

原创 【BZOJ1036】[ZJOI2008]樹的統計Count 樹鏈剖分

此題爲樹鏈剖分模板題,可用線段樹維護區間最值和區間和。 樹鏈剖分部分請參看【算法雜談_02】樹鏈剖分 [ZJOI2008]樹的統計Count 樹鏈剖分 C++代碼: #include <cstdio> #include <cstring>