1. 程式人生 > >波蘭題目補全計劃

波蘭題目補全計劃

最小生成樹 light AD 分類 run 避免 方式 ani poi2008

Introduce

本人比較喜歡做波蘭的題目,感覺這些題目十分清真,思維也比較好.
歡迎同樣喜歡波蘭題目的OIer來交流.
以下是我有記錄地刷過的題目.


比較好的題吧:
BZOJ #3746.[POI2015]Czarnoksi??nicy okr?g?ego sto?u
source:XXII OI - Etap I - Zadanie Czarnoksi??nicy okr?g?ego sto?u
notes:

動態規劃
我的題解http://www.cnblogs.com/TSHugh/p/8823423.html

BZOJ #3830.[Poi2014]Freight
source:XXI OI - Etap III - dzień drugi - Zadanie Za?adunek

notes:

dp優化
我從思維角度切入了一個復雜度不是特別優秀的算法,然後從數學角度優化到正解,然而如果從思維角度切入到一個雖然不是正解但是復雜度相對較優的算法,我們就走了一個很大的捷徑.所以說,雖然數學角度的優化是不可避免的,但是思維角度上的優化卻可以給我們一條捷徑.

LOJ #2450.「POI2010」綿羊 Sheep
source:XVII OI - Etap II - dzień drugi - Zadanie Owce
notes:

計算幾何+區間dp
一開始想到了30分爆搜,後來想用狀壓優化他,發現不行,後來又想2-sat,發現也不行,後來看到標簽是區間dp就去想區間dp了.

一開始想到了dp的轉移,但是預處理只會O(n^3*m)的,而且還會MLE,後來又想到了O(n*k*logk)的預處理,過掉了,發現波蘭正解還有更加優秀的O(n*k)的預處理.
不同的枚舉對象造成不同的時間復雜度,比如這道題,枚舉邊界點就會有O(n*k*logk)的預處理,而枚舉凸包內的點會得到優秀的O(n*k)的預處理.當然時間復雜度的優秀還得發現單調性,而不是像我做題的時候手動sort去構造單調性.
忽視無用狀態,尤其還是難以處理的無用狀態,會給你不一樣的思路.
凸包(環狀物)用區間dp似乎比較常見誒……
感覺自己叉積還是用得不6……

BZOJ #2216.[Poi2011]Lightning Conductor

source:XVIII OI - Etap I - Zadanie Piorunochron
notes:

決策單調性優化dp
在這道題裏利用決策單調性的方式可以是單調隊列、單調棧,這兩個玩意兒實質上是一樣的都是不斷二分判斷兩個決策點的替換點,只不過一個即時計算貢獻,一個延時計算貢獻,感覺各方面都差不多.還有一種是分治,就是連轉移點帶決策點一起分治,比上一種要慢一些,但是都是O(nlogn)的.
似乎網上的人用得都是double,然而我用的是int,雖然是有一些麻煩,但是常數和精度都更加優秀誒.

BZOJ #3711.[PA2014]Druzyny
source:PA 2014 - Runda 3 - Zadanie Dru?yny [A]
notes:用分治+數據結構來優化dp
BZOJ #3714.[PA2014]Kuglarz
notes:最小生成樹(我用線性基水過了)
BZOJ #3709.[PA2014]Bohater
notes:大力貪心
BZOJ #3498.PA2009 Cakes
notes:根號分類處理
to be continued……


一般般的題吧:
BZOJ #3733.[Pa2013]Iloczyn
notes:大力dfs
BZOJ #4297.[PA2015]Rozstaw szyn
notes:樹上的貪心
BZOJ #2091.[Poi2010]The Minima Game
source:XVII OI - Etap III - dzień pierwszy - Zadanie Gra w minima
notes:

十分水的博弈論dp
只要發現/感覺/證明那個結論就好了.

to be continued……


比較水的題吧:
BZOJ #3831.[Poi2014]Little Bird
source:XXI OI - Etap II - dzień drugi - Zadanie Ptaszek
notes:十分水的單調隊列優化dp
BZOJ #3713.[PA2014]Iloczyn
BZOJ #3715.[PA2014]Lustra
BZOJ #1116.[POI2008]CLO
BZOJ #1122.[POI2008]賬本BBB
to be continued……

波蘭題目補全計劃