USACO 2015 US OPEN CONTEST,Gold Division Solution

Googol

简单的交互题,就是需要高精除极为麻烦,略过。

Palindromic Paths

比较好的dp题。
首先我们可以枚举回文串的长度。枚举一个a,则回文串长度为2a-1
显然从中间那条斜线开始。
然后我们可以观察到,对于一个a,字符串的最后的字符位于一条斜线上。
也就是说,在特定的a下,对于字符串最后一个字母c,在知道其横座标x 的情况下,是可以算出其纵座标y 的。
那么我们可以定义状态dp[a][x1][x2] 表示在a的情况下,左边端点的横座标为x1,右边端点的横座标为x2,满足条件的回文串的个数。
然后把a那个维度给滚掉。
经过简单的转移即可求得答案。
时间复杂度O(n3) ,空间复杂度O(n2) ,略微卡一下常数即可。

Trapped in the Haybales

高调表示这是自己写过的最牛逼的贪心。
首先这题的切入点是草垛的质量。
我们按照质量排序,然后依次把草垛放到直线上。
每次加入一个草垛(位置为p ),看看它左边的草垛(如果有的话)l ,以及右边的草垛(如果有的话)r
如果lr 已经是可以不可以自由的,那么就不插入这个草垛。
else
观察如果哪边可以撞翻当前该草垛,那么把[l,p] 或者[p,r] 加入答案。
因为草垛的质量是从大到小排序的,那么lr 的质量要不是没影响,要不是已经算过了。
关于怎么维护,用一个set存位置,用一个map标记即可。

相信绝大多数同学卡在按照位置排序然后预处理啊并查集啊一起乱搞啥都没搞出来上了==

发布了80 篇原创文章 · 获赞 4 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章