POI题解整合

我也不知道为啥我就想把POI的题全都放到一篇blog里写完。

POI 2010

GIL-Guilds

按照洛谷的题面,可以发现灰点就是用来搞笑的,然后在生成树上染个色就行了。

KOR-Beads

枚举长度,hash判重就行,注意先预处理出整串的hash值,然后\(O(1)\)求每一段的hash值。复杂度\(O(n\log^2 n)\)

ANT-Antisymmetry

把给定的串每个字符取反放在这个字符后面,然后长度和半径为偶数的回文串就是答案了。魔改一下manacher就能做了。

KLO-Blocks

把每个数都减去\(k\),然后再求前缀和,答案就是最大的\(r-l\)满足\(s_r\ge s_l\)。求这个东西可以先把前缀和塞到一个单调栈里,然后从后往前计算答案,注意到如果\(r_1\)的答案在\(l_1\)处,那么对于\(r_2<r_1\)\(r_2\),其对应的\(l_2\)也必须小于\(l_1\)才有可能成为答案,这个东西是有单调性的,所以\(O(n)\)地来 回扫2遍就行了。

PIL-Pilots

枚举右端点,单调队列维护当前最大最小值。因为如果在一个位置不合法了,之后的位置一定也不合法,所以就要出队靠前的元素。

POI 2011

PAT-Sticks

一个神仙的结论:如果有能排成三角形的三根木棍,那么一定有三根长度相邻的木棍能排成三角形。所以排个序,维护三个相邻的不同色的木棍看是否合法就行了。

TEM-Temperature

一开始没看到是子串,想了好久才发现……

子串就很好做了,要满足每个\(r\)都大于之前的所有\(l\),维护一个单调队列就行了。

猜你喜欢

转载自www.cnblogs.com/wyxwyx/p/poi2010.html