欢迎光临散文网 会员登陆 & 注册

CF竞赛题目讲解_CF1121F(后缀自动机 + DP)

2022-10-03 10:03 作者:Clayton_Zhou  | 我要投稿

 https://codeforces.com/contest/1121/problem/F

题意:

要压缩字符串,必须将s表示为几个非空字符串的串联:s=t[1]t[2]…t[k]。

这些字符串的第i个应使用以下两种方式之一进行编码:

1. 如果|t[i]|=1,意味着当前字符串由单个字符组成, 可以对其进行编码,支付a个硬币;

2. 如果t[i]是t[1]t[2]…t[i-1]的子串, 可以对其进行编码,支付b个硬币。t[i]可以为单个字符,也可以是多个字符。

您的任务是计算压缩给定字符串s所需的最小硬币数量。


题解:

后缀自动机 + DP

逐个上传字符,动态构造后缀自动机树,同时搜索后面的t[i]是否为t[1]t[2]…t[i-1]的子串


CF竞赛题目讲解_CF1121F(后缀自动机 + DP)的评论 (共 条)

分享到微博请遵守国家法律