info: { blogIcon: 'https://cdn.luogu.com.cn/upload/usericon/765493.png', blogUser: 'OIerBoy', blogAvatar: 'https://cdn.luogu.com.cn/upload/usericon/765493.png', blogStartDate: '2023-04-22', webpageTitleOnblur: '(o?v?)ノ Hi', webpageTitleOnblurTimeOut: 1000, webpageTitleFocus: '(*′?`*) 欢迎回来!', webpageTitleFocusTimeOut: 1000, webpageIcon: "https://cdn.jsdelivr.net/gh/BNDong/Cnblogs-Theme-SimpleMemory@master/img/webp/blog_logo.webp", { enable: true, // 是否开启日/夜间模式切换按钮 auto: { // 自动切换相关配置 enable: false, // 开启自动切换 dayHour: 5, // 日间模式开始时间,整数型,24小时制 nightHour: 19 // 夜间模式开始时间,整数型,24小时制 } } },

[ABC141E] Who Says a Pun?

2023-02-17

题目

题目传送门

翻译

翻译

难度&重要性(1~10):4

题目来源

AtCoder

题目算法

dp,字符串

解题思路

看到求两个完全相同的子串时,我们可以发现其与求最长公共子串相似,只不过是在同一个字符串中求。因此我们可以使用求最长公共子串类似的 dp 转移。设 \(f_{i,j}\) 为以第 \(i\) 个字符结尾的子串与以第 \(j\) 个字符结尾的子串的公共子串长度,当 \(s_i=s_j\) 时,\(f_{i,j}=f_{i-1,j-1} + 1\)
但还需要注意,两个子串互不重叠,因此需要满足 \(f_{i-1,j-1} \leq j - i-1\) 才能转移。

完成状态

已完成

posted @ 2023-04-28 19:42  OIerBoy  阅读(36)  评论(0)    收藏  举报