您的位置:首页 > 其它

5月题目汇总2(5.7---5.13)

2017-05-08 11:51 127 查看
5.7晚

NO.1 来源: BZOJ 4565 [Haoi2016]字符合并

分类: 区间,状压 dp

简要题解:

注意到长度为len 的01串最后会被合并成长为x=(len−1) mod (k−1)+1 的01串。

设f(i,j,S) 表示区间[i,j] 的01串最后变成二进制状态S 的最大得分。讨论S 的第一个字符由那些合并而来,那么f(i,j,S)←f(i,t,first)+f(t+1,j,S−first) (t≡ i mod(k−1))

特别的,当x=1或x=k 的时候f(i,j,to(S))←f(i,j,S)+w(S)

反思

状态还是很好想到,关键是抓住什么来转移。发现长度的性质其实很有用。

思路有点像合并石子,只是不知道高到哪里去了。

5.8晚

NO.2 来源:BZOJ 4566 [Haoi2016]找相同字符

分类: 后缀自动机

简要题解:

对这两个串建一个广义后缀自动机,每个节点记录Max,cnt1,cnt2,分别表示该节点最长串的长度,第一个字符串的到访次数,第二个字符串的到访次数。

维护cnt1,cnt2的方法是,每次加入一个字符都在last节点上累计次数,最后基数排序之后从下到上累加就行了。

最终答案就是∑(Max[x]−Max[pre[x]])∗cnt1[x]∗cnt2[x]

反思

对于字符串的统计为题,后缀自动机是很有力的方法。

每个节点要维护什么,最后答案是什么。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: