码迷,mamicode.com
首页 > 其他好文 > 详细

省选模拟29

时间:2020-02-23 22:42:22      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:数组   自己   一个   条件   这一   恶心   顺序   head   简单   

A.

  题目中给出了奇怪的k个点,满足删掉这k个点之后无环。

  那么,这k个点内部一定存在拓扑序,其余的点内部一定也存在拓扑序。

  可以发现,只要删掉原图中所有的三元环就可以满足条件。

  所以说可以发现,对于剩余的点,必然在另外k个点的拓扑序中存在分界点,满足分界点之前都从k个点连向这个点,后面相反。

  那么只要分别求出来两边的拓扑序简单dp即可。

B.

  考虑每一对相同的子串的贡献,那么只要一个串包含了这一对子串并且前缀是一对子串之一,那么就是就有1的贡献。

  所以直接建出来SAM,找出所有相同的子串,简单维护即可。

C.

  首先操作顺序不影响结果。

  不难发现,对于一个位置操作,对于后面造成的影响是下一个位置+1,前面第一个0变成1,第一个0后面的数-1,自己位置-1。

  那么可以发现0的位置变化只有可能是向前移动1或者去掉一个0,这个东西简单维护就行了。

  比较好的做法是用一个栈来维护,然而我考场打的恶心了被卡常,虽然我存数组用的char爆了。

省选模拟29

标签:数组   自己   一个   条件   这一   恶心   顺序   head   简单   

原文地址:https://www.cnblogs.com/hzoi-cbx/p/12354389.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!