题目链接  Hrbust 2363

来源  “科林明伦杯”哈尔滨理工大学第七届程序设计团队赛 Problem J

题意  给出一个长度为$1e6$的字符串,求最小可重回文子串覆盖数量

首先Manacher预处理出以$s[i]$为首字母的回文子串的长度的最大值

然后求出包含$s[i]$的回文子串的能延伸到的最左端的位置

DP即可

#include <bits/stdc++.h>

using namespace std;

#define rep(i, a, b)	for (int i(a); i <= (b); ++i)
#define dec(i, a, b) for (int i(a); i >= (b); --i) const int N = 2e6 + 10; char a[N], s[N];
int dp[N], c[N], d[N], f[N], g[N];
int T, n, m, r, p, cnt, ans, now, ca = 0;
vector <int> v[N]; void up(int &x, int y){ if (x < y) x = y;} int main(){ scanf("%d", &T);
while (T--){
scanf("%s", a + 1);
n = strlen(a + 1);
rep(i, 1, n) s[i << 1] = a[i], s[i << 1 | 1] = '#';
s[0] = '$', s[1] = '#', s[m = (n + 1) << 1] = '@';
r = 0, p = 0, f[1] = 1;
rep(i, 2, m - 1){
for (f[i] = r > i ? min(r - i, f[p * 2 - i]) : 1; s[i - f[i]] == s[i + f[i]]; f[i]++);
if (i + f[i] > r) r = i + f[i], p = i;
} rep(i, 0, m) g[i] = 0;
rep(i, 2, m - 1) up(g[i - f[i] + 1], i + 1);
rep(i, 1, m) up(g[i], g[i - 1]);
ans = 0; cnt = 0;
for (int i = 2; i < m; i += 2){
++cnt;
c[cnt] = g[i] - i;
} rep(i, 1, n) c[i] = i + c[i] - 1;
rep(i, 1, n) d[i] = i;
rep(i, 1, n) d[c[i]] = min(d[c[i]], i);
dec(i, n - 1, 1) d[i] = min(d[i], d[i + 1]);
rep(i, 0, n + 1) dp[i] = 1e9; dp[0] = 0;
rep(i, 1, n) dp[i] = min(dp[i], dp[d[i] - 1] + 1);
printf("Case #%d: %d\n", ++ca, dp[n]);
} return 0;
}

  

最新文章

  1. flask-admin章节一:使用chartkick画报表
  2. 高性能 Windows Socket 组件 HP-Socket v3.0.1 正式发布
  3. 【转】【MySQL】mysql 通过bin-log恢复数据方法详解
  4. android 入门-git之上传本地代码到github
  5. 常用sql(转)
  6. System,Integer,Calendar,Random和容器
  7. 详解HTTP中的摘要认证机制(转)
  8. jquery formatCurrency货币格式化处理
  9. android _scrollview嵌套listview出现高度显示不全解决方案
  10. BZOJ 2115 Wc2011 Xor DFS+高斯消元
  11. STM32开发指南-跑马灯实验
  12. nova创建虚拟机源码分析系列之七 传入参数转换成内部id
  13. Vue-生命周期图示 注解
  14. 阿里云API网关(9)常见问题
  15. antDesign 使用Form并进行表单验证
  16. centos7证书安全登录
  17. Caffe源码阅读(1) 全连接层
  18. Cocos Creator 对象池cc.NodePool的使用
  19. spring 配置文件属性设置默认值以及读取环境变量值
  20. ElasticSearch 笔记

热门文章

  1. [2016-04-19 15:46:03 - IceHoloReader1.0] Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER [20
  2. Python学习-day10(番外篇) 阻塞IO 非阻塞IO 同步IO 异步IO
  3. Leetcode 576.出界的路劲数
  4. pb8.0 mssqlserver 新建数据库连接问题
  5. 动态规划--找零钱 coin change
  6. Mysql,phpmyadmin密码忘了怎么办
  7. Mysql实战之高可用HMA
  8. FreeBSD 用kgdb调试kernel dump文件
  9. 洛谷P3803 【模板】多项式乘法(FFT) 【fft】
  10. python百度贴吧爬虫