原创 【bzoj 1040】騎士(樹DP)

傳送門biu~ 如果是一棵樹,答案顯而易見。用f[i]代表以i爲根的子樹中選擇i這個點的最大值,g[i]是不選擇i這個點的最大值。遞歸求解即可。 對於一棵環套樹,我們可以從環中任意選擇一條邊(u,v),u和v不能同時選擇。我們

原创 【bzoj 1922】大陸爭霸(Dijkstra堆優化)

傳送門biu~ 對於每個節點,dis1表示走到這個點的最早時間,dis2代表解除了有關這個點的所有限制的最早時間,所以每個點最早到達時間爲max(dis1,dis2)。在Dijkstra時,每到一個節點,就解除這個點對其它點的保

原创 【bzoj 2064】分裂(狀壓DP)

傳送門biu~ 一種一定可行的方案就是用n次操作先把所有數合併,再用m次操作分開。總操作次數n+m。 如果對於第一個序列中的某個集合和第二個序列中的某個集合,他們的和是相同的,那麼操作次數就可以少2次。也就是說把兩個序列的集合

原创 【bzoj 4887】可樂(Floyd+快速冪)

傳送門biu~ 可以建一個虛擬節點表示自爆,虛擬節點不連出邊。計算矩陣t次冪後1到每個節點的方案數和。 #include<bits/stdc++.h> using namespace std; const int mod=201

原创 《我的兄弟叫順溜之這尼瑪也能翻盤》——HLOI2018遊記

副標題:《做了多少好事才能使一個noip335分省Rank14的菜比選手人品爆發省選翻盤混進省隊A類》 Day0: 在火車上度過了大部分的時間。靠在Dilhao身上睡覺可以舒舒服服地度過半程。考前和BlackJa

原创 退役OIer zP1nG 重新連接

2019年8月5日。noi退役後381天。 退役的畫面猶在昨日,又恍若隔世。那年那天,我放下鍵盤提起筆,踏入屬於我的另一個戰場。回到家的日子很快樂,也很辛苦。現在我深刻地知道,有人在的地方就一定有競爭——有競爭的地方就一定要求我們

原创 【bzoj 4631】踩氣球(鏈表+線段樹合併)

傳送門biu~ 先用鏈表將原序列鏈在一起,每次一個點的值被減至0時將這個點從鏈表中刪除。即用鏈表維護每一個點左右第一個值不爲0的點。 對於序列上的每一個點開一個值域爲[1,n]的權值線段樹。對於每個熊孩子區間[l,r],將l作

原创 【模板】迴文自動機(指針版)

迴文自動機詳解參見:Palindromic Tree——迴文樹【處理一類迴文串問題的強力工具】 bzoj 3676 #include<bits/stdc++.h> #define N 300005 using namespace std;

原创 【bzoj 5128】尋找母串(區間dp)

傳送門biu~ 枚舉長度是|T||T| 因子的子串tt 進行判斷。 fi,jfi,j 表示子串T[i,j]T[i,j] 能否合法由t產生。 轉移時在末尾加長度爲|t||t| 倍數的區間或者匹配一位t(j−i)mod|t|t(j−

原创 【bzoj 1913】signaling 信號覆蓋(計算幾何)

傳送門biu~ 考慮貢獻。我們可以發現,對於能組成凸四邊形的四個點,它們對答案的貢獻是2;對於能組成凹四邊形的四個點,它們對答案的貢獻是1。問題就轉化成了計算凹/凸四邊形的數量。 因爲凹四邊形和凸四邊形的數量和是確定的C4nCn4 ,

原创 【NOIp 2017】小凱的疑惑(置頂)

無數人被小學奧數坑到家破人亡,我也不例外。 在此發博文告誡自己無論什麼題目都要冷靜思考,簡單的題目不要想複雜,沉着冷靜才能做到最好。 我愛OI,自然要愛屋及烏。我愛小學奧數。 #include<bits/stdc++.h> using

原创 【bzoj 3744】Gty的妹子序列(分塊+樹狀數組)

傳送門biu~ 默認按size=n−−√size=n 分塊(求導個屁)。對於每個詢問,有三個部分: ①對於大塊之間形成的逆序對, 因爲求長度爲n的序列的逆序對數可以用樹狀數組在O(nlogn)O(nlog⁡n) 的時間複雜度內完

原创 Markdown編輯公式

拿小本本記下來。。。

原创 【bzoj 2820】YY的GCD(莫比烏斯反演)

傳送門biu~ 參考博客:莫比烏斯反演 #include<bits/stdc++.h> #define N 10000000 using namespace std; int T,n,m,prime[N+5],mu[N+5],f[N+5

原创 【bzoj 5127】數據校驗(亂搞)

傳送門biu~ 可以發現,如果區間[l,r]滿足條件,那麼它的長度爲2的子區間一定滿足條件;如果所有長度爲2的子區間滿足條件,那麼這個區間也一定滿足條件。所以只需要判斷[l,r]之間是否有不滿足條件的長度爲2的子區間即可,用前綴和亂搞一