退役前的作題記錄1.0

退役前的作題記錄1.0

租酥雨最近很懶qwq,具體表如今寫題的時候不想發題解了。
可是想一想這樣也不太好,就決定發個一句話(半句話到幾句話不等)題解上來。數組

2018-09.18-2018-09.28網絡

[BZOJ3613][HEOI2014]南園滿地堆輕絮

能夠證實答案就是差最大的逆序對的差的一半。函數

[BZOJ3612][HEOI2014]平衡

至關因而要選k個不一樣的數使它們和爲0.正負分開,設\(f_{i,j}\)表示選\(i\)個數和爲\(j\)的方案數,轉移是\(f_{i,j}=f_{i,j-i}+f_{i-1,j-i}-f_{i-1,j-n-1}\),分別是給每一個數加1,給每一個數加1再插入一個1,以及不能讓最大值超過n。算答案就枚舉正負分別選多少而後揹包卷一下,注意能夠選一個0.佈局

[BZOJ4007][JLOI2015]戰爭調度

直接爆搜每一個點選取方案,複雜度是\(T(n)=2T(n-1)=2^n\).再作一個樹上揹包就行了。優化

[BZOJ5330][SDOI2018]反迴文串

莫比烏斯反演+Pollard_Rho分解質因數,已經寫了詳細題解,此處再也不贅述。spa

[BZOJ4850][JSOI2016]燈塔

這不是POI的原題嗎?決策單調性瞎搞。指針

[BZOJ4857][JSOI2016]反質數序列

兩個數加起來是質數就連一條邊,至關因而要求最大獨立集,若是隻有不超過一個1的話原圖必定是二分圖(按奇偶),而超過一個1是沒有意義的(1不能重複選),因此就直接dinic了。orm

[BZOJ4851][JSOI2016]位運算

從高位往低位一位位肯定。假設選出的n個數按大小排列,咱們用一個長爲n的二進制數來表示當前每一個數和下一個是否相同,最後一個數和R是否相同。發現每一個0跟每一個1的轉移都是同樣的,因此能夠直接矩陣快速冪,複雜度\(O(2^{3n}(|S|+\log k))\)排序

[BZOJ4475][JSOI2015]子集選取

每一個數都是獨立的,答案必定是\(w^n\)的形式。觀察發現答案就是\(2^{nk}\),能夠列出遞推式而後概括證實。繼承

[BZOJ4484][JSOI2015]最小表示

按拓撲逆序處理,按照必定順序訪問出邊,用bitset存可到達的點,若是某條出邊的加入並無使可到達的點增多,那麼這條邊就能夠刪除。訪問順序按照最長路的順序。

[BZOJ4472][JSOI2015]salesman

直接樹dp+貪心便可。注意若是選了某個子樹的權值爲0那麼也說明不惟一(能夠不選)

[BZOJ4476][JSOI2015]送禮物

有兩種狀況,一種對全部長度爲L的區間求答案,另外一種狀況,區間的兩端點必定分別是最大值跟最小值。分數規劃後推一下式子,至關因而要最大化前面的\(a_i-mid\times i\),用單調隊列維護。

[BZOJ4477][JSOI2015]字符串樹

對字符串建Trie樹,有多少串包含這個前綴至關因而有多少包含在Trie樹上這個節點的子樹裏。主席樹維護到根路徑上的信息,每次查詢減一下lca。

[BZOJ4488][JSOI2015]最大公約數

枚舉起點,\(\gcd\)日後走至多隻會變化\(\log\)次,因此暴力二分找到最遠點更新答案就好了,gcd用\(ST\)表求,複雜度兩隻\(\log\)

[BZOJ4481][JSOI2015]非誠勿擾

假設某個女嘉賓的如意郎君有\(x\)我的,那麼選到第\(i\)我的的機率就是\(\frac{p(1-p)^{i-1}}{1-(1-p)^x}\),二維偏序便可。

[BZOJ4482][JSOI2015]套娃

貪心,按照美觀度依次選取最大的能放進去的放。

[BZOJ2743][HEOI2012]採花

離線詢問,考慮每種顏色對答案的貢獻,用樹狀數組維護。

[BZOJ4029][HEOI2015]訂價

從後往前貪心放0.注意特判L和R位數不相同的狀況。

[BZOJ4028][HEOI2015]公約數序列

分塊,對每一個塊維護塊內\(\gcd\),塊內異或和,以及一個塊內元素按照塊內異或前綴和的排序數組,修改直接重構快,查詢分兩種,若是塊內的前綴\(\gcd\)都相同就在排序數組上二分,不然暴力,由於會使得前綴\(\gcd\)改變的塊至多隻有\(\log\)個,因此複雜度\(O(n\sqrt n)\)

[BZOJ2746][HEOI2012]旅行問題

建出\(fail\)樹就是兩點\(lca\)

[BZOJ2745][HEOI2012]bridge

\(A=m(m-1),B=(m-1)(m-2)+1\),題目就是在求\(A2^m\sum_{i=1}^{n}B^{i-1}i^m\)\(m\)較小\(p\)較大能夠接受\(m^3\)的矩乘,主要在於用楊輝三角構造\(i^m\)\(p\)較小能夠求出循環節而後倍增(由於肯可能不存在逆元不能等比數列求和)

[BZOJ2067][POI2004]SZN

第一問答案恆定,非根節點貢獻兒子個數/2向下取整,根貢獻兒子個數/2向上取整。第二問先二分再貪心匹配,匹配時還要二分父向邊和哪一個兒子匹配,細節較多。

[BZOJ3872][POI2014]Ant colony

對每一個點求:若是這個點到達根後數量爲K則到這個點的螞蟻數量的範圍是多少,乘爆了能夠直接設成inf,對於每一個葉子節點二分便可。

[BZOJ3745][COCI2015]Norma

分治,每次考慮跨越mid的區間。i從mid循環到l枚舉左端點,記左邊的最大最小值爲mx和mn,右邊用單調指針維護最後一個小於等於mx的位置j和大於等於mn的位置k。右端點<=min(j,k)直接等差數列求和,>max(j,k)就是右邊最大最小值乘積的後綴和,中間依照jk的相對大小多是最小值或是最大值的區間和。維護六個東西:最小值、最大值、最大值乘最小值以及分別乘下標的前綴和便可。

[BZOJ5281][Usaco2018 Open]Talent Show

分數規劃以後作遍揹包,\(w_i\)超過\(W\)的直接當作是\(W\)

[CF912E]Prime Gift

折半搜出全部不超過\(10^{18}\)知足條件的數而後二分求答案。

[CF875D]High Cry

維護每一個數向左向右第一個不是本身子集的數的位置,從大到小分治作就好了。

[51nod1472]取餘最大值

找區間最大值,暴力for小的一半,每次至關因而查詢區間\([l,r]\)內等於\(v\)的有多少個。離線下來能夠作到一個\(\log\)

[51nod1348]乘積之和

分治\(FFT\)板子。精度貌似有點炸要\(MTT\)才行。

[51nod1752]哈希統計

倍增+循環卷積。

[BZOJ4861][Beijing2017]魔法咒語

\(l\)較小能夠\(O(nl)\)dp,轉移串長度小能夠直接矩乘,矩陣大小爲二倍AC自動機節點個數的平方。

[BZOJ4722]由乃

能夠證實區間長度大於等於14必定有解,不然就\(meet\ in\ the\ middle\)一下\(O(3^7)\)爆搜。

[BZOJ4347][POI2016]Nim z utrudnieniem

\(f_{i,j,k}\)表示前\(i\)堆裏丟掉的堆數模\(d\)\(j\),異或和爲\(k\)的方案數。由於\(\sum a_i\)不是很大,因此每次枚舉\(k\)就最大隻枚舉到\(a_i\)的最高位那麼多,複雜度是\(O(\sum a_id)\)的。轉移的時候異或的兩個數能夠一塊兒轉移,就不會卡空間了。

[BZOJ4345][POI2016]Korale

堆模擬搜索。先求出答案,而後找字典序最小,由於有了答案的限制,因此能夠爆搜,狀態數不會超過\(k\)

[BZOJ3191][JLOI2013]卡牌遊戲

\(f_{i,j}\)表示剩下\(i\)我的時第\(j\)我的活的機率,隨便轉移一下就行了。

[BZOJ3192][JLOI2013]刪除物品

傻題不講了。

[BZOJ3190][JLOI2013]賽車

維護一個第一象限的凸殼。

[BZOJ3193][JLOI2013]地形生成

組合計數,按高度從高到低考慮便可。

[BZOJ3990][SDOI2015]排序

能夠發現交換順序是沒有關係的,因此每種本質不一樣的方案就給答案貢獻次數的階乘。從小往大的交換每次至多\(4\)中決策,複雜度\(O(4^n)\)

[BZOJ4600][SDOI2016]硬幣遊戲

暴力預處理\(SG\)函數就好了。

[BZOJ3131][SDOI2013]淘金

首先\(x,y\)座標獨立者很顯然,而後由於個位數字含有的質因子只有\(2,3,5,7\),因此最後有金子的位置必定只含有這四個質因子,而在\(10^{18}\)內這樣的數很少,因此直接數位\(dp\)一下記下狀態。前\(k\)大就固定\(x\)座標,用堆維護便可。

[CF981F]Round Marriage

hall定理。須要倍長後再加倍才能保證整個環都匹配上了。

[BZOJ1283]序列

線性規劃網絡流。

[LOJ6079][2017 山東一輪集訓 Day7]養貓

上一題的增強版。課件裏面講了。

[CJOJ1851]免費航班

邊雙縮點而後樹上換根\(dp\)求最長路。

[51nod1443]路徑和樹

建出最短路徑\(DAG\)後跑個最小樹形圖,由於是個\(DAG\)因此直接給每一個點選最小入邊便可。

[UOJ67]新年的毒瘤

度數爲\(m-n+2\)的非割點即爲答案。

[BZOJ4883][Lydsy1705月賽]棋盤上的守衛

能夠說是「最小生成基環森林」?總之是要保證每條邊能夠匹配每一個點,因此一個連通塊確定是一個基環樹。

[CF1053B]Vasya and Good Sequences

須要知足的條件是最大值不超過總和的一半且共含有偶數個1。由於最大值不超過60因此不知足前一個條件的區間長度不會超過60,暴力減掉便可。

[CF1053C]Putting Boxes Together

推一下式子,拿兩個樹狀數組分別維護區間\(w_i\)之和以及\(w_i\times i\)之和。

[BZOJ3887][Usaco2015 Jan]Grass Cownoisseur

先scc縮點,以後在正反\(DAG\)上跑出從\(1\)出發的最長路,枚舉哪一條邊翻轉便可。

[BZOJ1731][Usaco2005 dec]Layout 排隊佈局

差分約束。注意圖可能不連通。

[BZOJ5185][Usaco2018 Jan]Lifeguards

先去掉被包含的區間,而後貪心\(dp\),轉移分兩種,一種是不選當前區間,一種是選,若是這個選的區間要和上一個選的有交那麼必定會選一個左端點儘可能靠左的。

[BZOJ5190][Usaco2018 Jan]Stamp Painting

合法的方案就是存在一個長爲\(k\)的顏色連續段,考慮計算不合法的,\(f_i=i^m(i<k),f_i=(m-1)\sum_{j=1}^{k-1}f_{i-j}\)

[BZOJ1701][Usaco2007 Jan]Cow School牛學校

假設前\(t\)大的分數的分子之和爲\(U\),分母之和爲\(D\),則若要知足條件則須要存在\(i,j\)知足\(\frac{U-u_i+u_j}{D-d_i+d_j}>\frac UD\),其中\(i\)是前\(t\)大之一而\(j\)不是。劃一下式子發現是要求\(Du_i-Ud_i\)的前綴\(\min\)\(Du_j-Ud_j\)的後綴\(\max\),Claris老師說知足決策單調性。

[BZOJ5071][Lydsy1710月賽]小A的數字

發現操做的本質是交換兩個前綴和,因此就判一下兩個序列的前綴和是否是全等就行了。

[BZOJ5072][Lydsy1710月賽]小A的樹

對於一個固定的\(x\)它合法的\(y\)必定是連續的,因此只要算出最大值跟最小值就能夠了。

[BZOJ5094][Lydsy1711月賽]硬盤檢測

用對數計算\(n\)在每一個取值下當前這種狀況出現的機率,取最大的便可。

[BZOJ5091][Lydsy1711月賽]摘蘋果

發現無論怎麼說,移動到每一個點的機率都是\(\frac {d_i}{2m}\)

[BZOJ5090][Lydsy1711月賽]組題

分數規劃,記錄個方案輸出時再轉分數便可。

[BZOJ5074][Lydsy1710月賽]小B的數字

實際上就是給你一組\(a_i\)要你構造一組\(k_i\)使得任意\(i\)知足\(k_ia_i\ge \sum_j k_j\)。一個結論是\(\sum_i \frac 1{a_i}\le 1\)是能夠構造出,不然不行。

[BZOJ5075][Lydsy1710月賽]小B的矩陣

答案確定惟一。先考慮只有一列的狀況,至關於已知每一個格子及其相鄰至多兩個格子的雷數,能夠按\(n\)\(3\)的餘數分三類討論。列數不爲一就先求出每行及其上下兩行一共有多少雷,轉化爲只有一列的問題。

[BZOJ4921][Lydsy1706月賽]互質序列

前綴後綴\(\gcd\)只會變化至多\(\log\)次,因此就暴力\(\log^2\)搞一搞好了。

[BZOJ4922][Lydsy1706月賽]Karp-de-Chant Number

每一個括號序列消完後必定是一段前綴右括號跟一段後綴左括號。能夠理解爲:你要接受當前這個括號序列做爲下一個串,就要先付出前綴右括號數量的左括號,而後能夠獲得全部的後綴左括號。按左括號總量是增多仍是減小分兩類,對於左括號增多的,確定是優先選前綴右括號數量少的,而對於左括號減小的,你倒過來看就是右括號增長,因此是優選後綴左括號數量多的。排完序後大力作個\(O(n^3)\)揹包便可。

[BZOJ4923][Lydsy1706月賽]K小值查詢

考慮用平衡樹維護序列。每個修改對於\([1,k)\)的數沒有影響,對於\((2k,+\infty]\)的數在全局的相對大小也沒有影響,打標記便可。須要修改的數是\([k,2k]\),把這段區間摳出來暴力改。發現這樣一來每一個數至多被暴力修改\(\log\)次,因此複雜度就對了。

[BZOJ4891][TJOI2017]龍舟

(洛谷上數據範圍是假的,這個題明明就是\(2\times 10^{18}\))把\(M\)質因數分解,而後分子分母也一一分解,若是約分後分母與\(M\)\(\gcd\)不爲\(1\)則無解,對\(M\)算一下\(\varphi(M)\)直接算逆元便可。

[BZOJ4890][TJOI2017]城市

暴力\(O(n^2)\)換根\(dp\)就過了...

[BZOJ4888][TJOI2017]異或和

考慮每一位是否是\(1\)。首先對序列作前綴和,根據這個數在當前這位是\(1\)仍是\(0\)能夠肯定另外一個前綴的取值範圍,樹狀數組維護便可。

[Luogu4471][BJWC2018]詞韻

對反串建\(Trie\),每一個點能夠接他的父親/兒子/兄弟,跑個樹\(dp\)

[Luogu4577][FJOI2018]領導集團問題

線段樹合併。

[BZOJ3864]Hero meet devil

(爲了作下面那道題跑去寫的)\(dp\)\(dp\)。考慮求\(lcs\)的數組\(f_{i,j}\),其相鄰兩位的相差不會超過\(1\),因此差分一下就能夠用一個二進制串表示一個\(lcs\)的匹配狀態。複雜度\(O(n2^m\times4)\)

[BZOJ5336][TJOI2018]遊園會

和上面那題同樣,再多開一維狀態記串\(NOI\)的匹配狀態。

[BZOJ5337][TJOI2018]鹼基序列

\(hash\)以後簡單\(dp\)便可。

[BZOJ5298][CQOI2018]交錯序列

考慮\(x^ay^b=(n-y)^ay^b=\sum_{i=0}^a\binom{n}{i}(-1)^{a-i}y^{a+b-i}\)。因此只要能求出\(y\)的若干次冪就好了。矩乘便可,矩陣大小爲\(2(a+b+1)\),較卡常,須要儘可能減小取模次數。

[UOJ62] 【UR #5】怎樣跑得更快

其實連\(\sum_{j=1}^nf(\gcd(i,j))\times g(i)\times h(j)\times x_j=b_i\)均可作呢。

講道理作三次反演就行了,中間要判一下無解的狀況(除零)

[CF809D]Hitchhiking in the Baltic States

考慮經典的\(lcs\)求法,設\(f_i\)表示長度爲\(i\)最後一個元素的最小值。

對於一個\([L,R]\),找到最後一個小於\(L\)的位置\(p\),那麼\(f_{p+1}\)能夠被更新爲\(L\)\(f_{p+2}\)被更新爲\(f_{p+1}+1\),直到最後一個小於等於\(R\)的位置\(q\)

至關因而區間平移,用平衡樹維護便可。

[BZOJ3073][Pa2011]Journeys

線段樹優化連邊,須要建兩棵線段樹,一棵入邊一棵出邊。\(01\)最短路能夠作到線性複雜度。

[Wannafly挑戰賽21E]將來城市規劃

維護邊權\(\times sz_i\)以及邊權\(\times sz_i^2\)的區間和便可。

[BZOJ4598][SDOI2016]模式字符串

\(O(n\log n)\)點分治。聽說長鏈剖分能夠作\(O(n)\),然而我並不會\(O(1)\)繼承長兒子啊怎麼辦。。。dalao們教教我吧

[BZOJ4599][SDOI2016]牆上的句子

網絡流,最小割建圖。

[BZOJ4517][SDOI2016]排列計數

\(m\)個不動,剩下的錯排。

[BZOJ4602][SDOI2016]齒輪

分解質因數而後\(dfs\)

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息