原创 團體賽訓練 NEERC2014 Southern Sub

這套題可做題挺多的,而且有幾個構造和模擬題  一些不可做題和無聊的題就沒補了  A - Nasta Rabbara 因爲我是dser 賽後唯一補的題  當時比賽的時候沒讀懂,看沒什麼人過也放棄了 確實有點麻煩的題 但是很有意思 題意

原创 P5787 二分圖 /線段樹分治 或 lct

沒有奇環的圖就是二分圖,所以我們要想辦法去維護一個圖裏面有沒有二分圖。 線段樹分治的做法:以時間建立線段樹,對於每一條邊的出現與消失時間,我們通過區間更新把這條邊掛在線段樹的結點上,最後對線段樹進行一次遍歷。搜索的時候加邊,回溯撤銷邊。

原创 線性基模板 求n個數中任意數異或和的最大值

題目鏈接:線性基模板 #include<bits/stdc++.h> using namespace std; const int N = 66; typedef long long ll; ll a[N],d[N]; void a

原创 P3224 [HNOI2012]永無鄉 權值線段樹合併

學了線段樹合併以後這題感覺瞬間水了,標籤是平衡樹,平衡樹合併還沒學的很會,不過線段樹合併絕對是最好寫的 用並查集維護連通性。注意 合併的時候並查集要與線段樹合併一致 假如fa[a]=b 那麼就要把a合併到b上面去  另外的求第k大就是基

原创 E. Johnny and Grandmaster 數論+思維

這道題的思路來源於一個叫zbr的大佬 真的挺秒的  仔細想想也不是很難 但是沒有想到如此簡便的做法 首先我們要從大到小排序 這個應該沒問題 因爲大數的權重遠遠比小的大  所以先分配大的在分配小的 其次 我們要清楚 對於一個大數  如果我

原创 P2633 Count on a tree 主席樹求樹上第k大

看到樹上第k大 首先想想普通的前綴和怎麼做  假如我要靜態的求鏈(u,v)的和  那麼我們就從樹根一直搜下來 維護一個前綴和,答案就是  現在再來看主席樹的方法就一目瞭然啦 對於每一個結點 在父節點的基礎上建樹 然後詢問的時候 觀察  

原创 P2387 [NOI2014]魔法森林 lct維護鏈路

題目描述 爲了得到書法大家的真傳,小 E 同學下定決心去拜訪住在魔法森林中的隱士。魔法森林可以被看成一個包含 nn 個節點 mm 條邊的無向圖,節點標號爲 1,2,3,…,n1,2,3,…,n,邊標號爲 1,2,3,…,m1,2,3,…

原创 [USACO18FEB]New Barns P lct維護樹的直徑

樹的直徑,通俗點講就是樹中兩個距離最遠的點。 在做此題之前我們需要證明一個結論,那就是一棵樹裏面和某個點x距離最遠的點一定是樹的直徑的端點。 也就是說如果路徑(u,v)是樹的直徑,那麼距離x最遠的點要麼是u,要麼是v 我們來證明一下:

原创 [WC2006]水管局長 lct維護最小生成樹

題目背景 SC 省 MY 市有着龐大的地下水管網絡,嘟嘟是 MY 市的水管局長(就是管水管的啦)。 題目描述 每天供水公司可能要將一定量的水從 uu 處送往 vv 處,嘟嘟需要爲供水公司找到一條從 uu 至 vv 的水管的路徑,接着通過

原创 ORA-12638: 身份證明檢索失敗 與 connect /as sysdba 權限不足

這兩個問題應該是相對的 今天我要登錄我們學校的數據庫時出現了身份證明檢索失敗的問題 解決方案: 在L:\app\29951\product\11.2.0\dbhome_1\NETWORK\ADMIN目錄下找到sqlnet.ora文件 將

原创 洛谷P1501 [國家集訓隊]Tree II lct維護

lct維護一些基本的樹鏈信息 注意的地方是要類似線段樹一樣 先維護乘標記 再維護加標記 另外修改樹鏈 u,v的信息時 把u,v 分(split)出來 要在最後被splay上來的那個點修改才能保證正確性 #include<bits/s

原创 cf 646 E. Tree Shuffling

貪心做,每次選ai最小的點向下遍歷,然後做最大交換次數。 把剩餘的(1個0或1個1存在根結點) 在繼續這個過程就行 我們可以推斷 走過的點一定不會再走(再走肯定不會更優)  #include<bits/stdc++.h> using

原创 [HNOI2010]彈飛綿羊 lct維護siz

最近開始回顧lct和splay之類的東西了,學了的東西好容易忘記啊  這題算是比較經典的題目吧,把i和i+a[i]連成一棵樹,如果i+a[i]>n,就把i和n+1連起來,表示跑到了終點    對於1操作 1 x 把鏈x,n+1拉出來 詢

原创 [HEOI2016/TJOI2016]排序 線段樹合併+set or 二分+線段樹

這題兩種主流的做法: 1.線段樹合併。複雜度mlogn 2.二分+01線段樹mlognlogn 主要講第一種吧。第一種更快。這裏我們要巧妙地運用線段樹的合併和分裂,一開始全都是隻有一個葉子的n棵線段樹,假如l到r需要排序,就把l到r合併

原创 D - Yet Another Yet Another Task 用線段樹寫水題

a[i]的數據範圍瞬間讓這題變成了水題  我們枚舉區間最大值 (從0到30) 負數沒必要 因爲當區間長度爲1時ans爲0 是最小值 我們只保留小於等於這個枚舉值的數 然後維護最小前綴和就行了 如果碰到大於枚舉值的位置 我們把最小前綴和設