Hrbust 2363 Symmys (Manacher + DP)
2024-08-25 08:09:49
题目链接 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;
}
最新文章
- flask-admin章节一:使用chartkick画报表
- 高性能 Windows Socket 组件 HP-Socket v3.0.1 正式发布
- 【转】【MySQL】mysql 通过bin-log恢复数据方法详解
- android 入门-git之上传本地代码到github
- 常用sql(转)
- System,Integer,Calendar,Random和容器
- 详解HTTP中的摘要认证机制(转)
- jquery formatCurrency货币格式化处理
- android _scrollview嵌套listview出现高度显示不全解决方案
- BZOJ 2115 Wc2011 Xor DFS+高斯消元
- STM32开发指南-跑马灯实验
- nova创建虚拟机源码分析系列之七 传入参数转换成内部id
- Vue-生命周期图示 注解
- 阿里云API网关(9)常见问题
- antDesign 使用Form并进行表单验证
- centos7证书安全登录
- Caffe源码阅读(1) 全连接层
- Cocos Creator 对象池cc.NodePool的使用
- spring 配置文件属性设置默认值以及读取环境变量值
- ElasticSearch 笔记
热门文章
- [2016-04-19 15:46:03 - IceHoloReader1.0] Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER [20
- Python学习-day10(番外篇) 阻塞IO 非阻塞IO 同步IO 异步IO
- Leetcode 576.出界的路劲数
- pb8.0 mssqlserver 新建数据库连接问题
- 动态规划--找零钱 coin change
- Mysql,phpmyadmin密码忘了怎么办
- Mysql实战之高可用HMA
- FreeBSD 用kgdb调试kernel dump文件
- 洛谷P3803 【模板】多项式乘法(FFT) 【fft】
- python百度贴吧爬虫