原创 bzoj5250 [2018多省省隊聯測]祕密襲擊

博主蒟蒻,目前還不會動態dp,所以下面說的是一個並不優秀的暴力,我會補的! 我們考慮按權值從大到小依次點亮每個點,相同權值可以同時點亮,每次點亮後,我們進行一次樹形揹包。 處理出$f[i][j]$表示i的子樹中有j個亮點的方案數,然後就AC

原创 bzoj5251 [2018多省省隊聯測]劈配

直接網絡流模擬即可AC。 可持久化+暴力=90分, 可持久化+二分=30分, 暴力加邊+二分=100分。 我也很無奈啊。 Ivan便漲紅了臉,額上的青筋條條綻出,爭辯道,“memcpy也是可持久化……memcpy!……OIer的事,當然是可

原创 bzoj5253 [2018多省省隊聯測]制胡竄

後綴自動機挺好毒瘤的題。 我們考慮哪些切點是不合法的。肯定是所有的匹配串都被切了。 我們考慮第一個切口的位置。 當第一個切口在第一個出現位置前時,第二個切口必須切掉所有的串。 當第一個切口在$l_{i}$和$l_{i+1}$間的時候(此時必

原创 loj536 「LibreOJ Round #6」花札

一眼二分圖博弈,於是我們可以拿到69分的好成績。 二分圖暴力加邊的數目是O(n^2)的,於是我們考慮網絡流優化建圖,將alice的每個牌向其的顏色和編號節點連邊,bob的每個牌由其顏色和編號節點向其連邊,之後在分別和源匯連邊,我們發現我們現

原创 bzoj 3239 poj 2417 BSGS

BSGS算法,預處理出ϕ(c)−−−−√ 內的a的冪,每次再一塊一塊的往上找,轉移時將b乘上逆元,哈希表裏O(1)查詢即可 #include<cstdio> #include<cstring> #include<iostream>

原创 51nod 1135 原根 就是原根...

%%% dalao Orz ,篩素數到sqrt(n),分解ϕ(p) ,依次枚舉判斷就好了 #include<cstdio> #include<cstring> #include<iostream> #include<algorit

原创 約會 倍增lca

題意:一棵樹,給兩個點,求樹上有多少點到他倆距離相等 倍增lca,分好多情況討論。。 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #i

原创 [Usaco2005 dec]Layout 排隊佈局 差分約束

填坑… 差分約束一般是搞一個不等式組,求xn-x1的最大最小值什麼的,求最大值就轉化成xa<=xb+w這樣的,然後建圖跑最短路(這纔是最終約束的),舉個例子 x1<=x0+2x2<=x0+7x3<=x0+8x2<=x1+3x3

原创 bzoj1059 [ZJOI2007]矩陣遊戲

二分圖匹配。 發現:無論怎麼交換,同一行的還是同一行,同一列的還是同一列的。 所以直接建圖,跑匈牙利就好了 #include<cstdio> #include<cstring> #include<iostream> #include<al

原创 bzoj 2242 [SDOI2011]計算器 快速冪+擴展歐幾里得+BSGS

1:快速冪  2:exgcd  3:exbsgs,題裏說是素數,但我打的普通bsgs就wa,exbsgs就A了...... (map就是慢)..... #include<cstdio> #include<cstring> #include

原创 poj 3243 擴展BSGS

每次把gcd(a,c)提到前面,直到a,c互質,然後就是普通BSGS了 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include

原创 bzoj 2005 能量採集 莫比烏斯反演

我們要求的是∑ni=1∑mj=1(2×gcd(i,j)−1) 化簡得2×∑ni=1∑mj=1gcd(i,j)−n×m 所以我們現在只需要求出∑ni=1∑mj=1gcd(i,j) 即可 ∑ni=1∑mj=1gcd(i,j)

原创 bzoj 2822 [AHOI2012]樹屋階梯 卡特蘭數

因爲規定n層的階梯只能用n塊木板 那麼就需要考慮,多出來的一塊木板往哪裏放 考慮往直角處放置新的木板 不管怎樣,只有多的木板一直擴展到斜邊表面,纔會是合法的新狀態,發現,這樣之後,整個n層階梯就被分成了i層和n-1-i層的階

原创 [POI2007]洪水pow bfs

發現:只在所有自己的城市建水泵一定是最優解。 所以對自己的城市按高度排序,該城市不用建的前提是從他出發經過一條高度都小於等於他的路徑能到達一個已經修建水泵的 sort+bfs...... #include<cstdio> #include

原创 bzoj 1485 [HNOI2009]有趣的數列 卡特蘭數

把排好序的序列看成一對對括號,要把他們往原數列裏塞,所以就是括號序合法方案數 即爲卡特蘭數 f(n)=Cn2nn+1 求的時候爲避免除法,可以O(n)計算每個素數出現次數,最後乘起來,打完之後發現其實根本不用快速冪…… #