HDU3294 manacher
来源:互联网 发布:python 异或运算符 编辑:程序博客网 时间:2024/04/29 09:56
题意:将字符串按一定规则变换,输出变换后的字符串中的最长回文串的起始和终止位置,并输出回文串。
题意:manacher模板题
#include <iostream>#include <cstring>using namespace std;const int MAXN = 200000 + 10;char c, s[MAXN * 2];int p[MAXN * 2];int st, t, maxlen;void Turn(char* s){ int len = strlen(s); int dis = c - 'a'; for(int i = 0; i < len; i++) { if(s[i] - dis >= 'a') s[i] -= dis; else { s[i] = 'z' - (dis - (s[i] - 'a') - 1); } }}void Manacher(char* s){ memset(p, 0, sizeof(p)); maxlen = 0; int len = strlen(s); int id = 0; //²åÈë# for(int i = len; i >= 0; i--) { s[2 * i + 2] = s[i]; s[2 * i + 1] = '#'; } s[0] = '*'; for(int i = 2; i < 2 * len + 1; i++) { if(p[id] + id > i) p[i] = min(p[id * 2 - i], p[id] - (i - id)); else p[i] = 1; while(s[i + p[i]] == s[i - p[i]]) ++p[i]; if(p[i] + i > p[id] + id) id = i; if(maxlen < p[i]) { maxlen = p[i]; t = i + (p[i] - 1); st = i - (p[i] - 1); } } return;}int main(){ ios::sync_with_stdio(false); cin.tie(0); while(cin >> c >> s) { Turn(s); Manacher(s); if((maxlen - 1) >= 2) { cout << (st + 1)/2 - 1 << " " << (t - 1)/2 - 1 << endl; for(int i = st + 1; i < t; i += 2) { cout << s[i]; } cout << endl; } else { cout << "No solution!\n"; } }}
阅读全文
0 0
- HDU3294 manacher
- hdu3294之manacher算法
- hdu3294(Manacher算法)
- 【HDU3294,URAL1294】manacher算法
- 【manacher算法】HDU3294 URAL1297
- hdu3294(manacher)
- hdu3294 manacher算法
- hdu3294 Girls' research(manacher)
- hdu3294 Girls' research(manacher)
- hdu3294 Girls' research 【manacher算法】
- Girls' research(hdu3294+Manacher算法)
- hdu3068&&hdu3294,回文串,Manacher算法
- HDU3294 Girls' research(Manacher算法)
- hdu3068+hdu3294 最长回文字符串的manacher算法
- hdu3294 Girls' research (manacher算法,最大回文子串)
- HDU3294——Girls' research(manacher算法,马拉车算法)
- Manacher
- manacher
- 百度echarts的使用
- 虚拟主机
- 问题:1.sizeof;2.重载覆盖隐藏;3.内存管理
- 8.字符串
- 【GDOI2018模拟8.12】区间第k小
- HDU3294 manacher
- 第6章 Spring 4.0增强和新功能 VI -- Spring4.3.8参考文档中文版
- 用于处理JDBC 增删等写操作的事务控制
- Broken Keyboard (a.k.a. Beiju Text)
- 2017.8.15 总结
- tp5模型belongsTo和hasOne的区别
- Flask-响应、调度方法和蓝图
- kaggle——Bike Sharing Demand
- 8.15 找礼物 2697