题意:

大概记得题意是说,给你一个a,b,再给你一个串,将这个串里字符下标mod a==b的字符重新组成一个新串,求新串的最大回文串是多长。

解:

就是整理下新串,用马拉车解决掉,但这样会超时,亲测有效,需要将计算过的a,b及对应的长度记下来,以缩短时间。(记忆化马拉车?)

比赛的时候硬是没想出来,最后知道记忆化存储就能解决真想撞死南墙= =。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cstdlib>
using namespace std;
const int MANX = 2e4+100;
char str0[MANX],str[MANX<<1],str1[MANX];
int p[MANX<<1],len;
int m[MANX][MANX];
void start()//处理原字符串
{str[0]='$',str[1]='#';len=strlen(str0);for(int i=0;i<len;i++){str[i*2+2]=str0[i];str[i*2+3]='#';}str[len*2+2]='\0';
}
int solve()//计算最长回文串长度
{memset(p,0,sizeof(p));int mx=0,id,ans=1;for(int i=1;i<len*2+2;++i){if(mx>i)p[i]=min(p[2*id-i],mx-i);else p[i]=1;for(;str[i-p[i]]==str[i+p[i]];p[i]++);if(p[i]+i>mx)mx=p[i]+i,id=i;if(p[i]>ans)ans=p[i];}return --ans;
}
int main()
{int t,g;scanf("%d",&t);int a,b;while(t--){memset(m,0,sizeof(m));scanf("%s%d",str1,&g);while(g--){scanf("%d%d",&a,&b);int k=0;int leth=strlen(str1);if(m[a][b]!=0){printf("%d\n",m[a][b]);continue;}else{for(int i=b;i<=leth;i+=a)str0[k++]=str1[i];start();int ans=solve();printf("%d\n",ans);m[a][b]=ans;}}}return 0;
}

2017东北四省赛G题相关推荐

  1. hihoCoder - 1633(2017北京icpc现场赛-G题)

    题意:给你一个三角形的三个坐标,还有一张图,让你从图中的左下角走到右上角,左下角坐标是(0,0),每两点之间的长度是1,'.'代表能走,'#'代表不能走,并且每条路径不能碰到三角形内部,让你求最短路径 ...

  2. ZOJ-3964 2017年浙大省赛G题博弈

    先记录下心情,其实在看大佬题解前,自己已经基本yy出来了,但有一两个点没处理好,就只能放弃,亟待加油啊~ 本题思路: 特判bi为1或者为2时的情况, ① 当bi = 1 && ai = ...

  3. 2020icpc上海赛G题 Fibonacci详解

    Fibonacci(icpc2020上海赛) 链接:icpc2020上海赛G题Fibonacci 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语 ...

  4. 5_竞赛无人机搭积木式编程——以2021年电赛G题植保无人机国奖标准完整复现为例学习

    竞赛无人机搭积木式编程 --以2021年电赛G题植保无人机国奖标准完整复现为例学习 首先我们需要了解下自动飞行任务执行过程几组关键变量的用法与实际作用效果: flight_subtask_cnt用于控 ...

  5. 2018东北四省赛 Store The Matrix (矩阵)

    2018东北四省赛 Store The Matrix (矩阵) 题目描述 Given a matrix M with r rows and c columns. It is obviously tha ...

  6. 2011东北地区赛G题(二分-网络流判可行性)

    题意:从M个参赛选手中选一些人参加N轮比赛,每场比赛只能有一个人胜出,问如何安排比赛,让获胜最多的那个人获胜次数最少. 构图:二分次数,用最大流判可行性. 源点向参赛人员连容量为该参赛人员最多获胜次数 ...

  7. 2018东北四省赛 Spin A Web 曼哈顿距离最小生成树

    莫队的论文,讲的很清晰 问题描述:给定平面N个点,两边相连的代价为曼哈顿距离,求这些点的最小生成树 按一般想法,prime复杂度O(n^2),Kruskal复杂度O(n^2 logn),N很大时,这复 ...

  8. 2015北京网络赛 G题 Boxes bfs

    Boxes Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://hihocoder.com/contest/acmicpc2015beijingonl ...

  9. 2017ACM-ICPC北京区域现场赛 G题 hihocoder1633

    传送门:点击打开链接 题意:一个N*N的网格,从左下角走到右上角需要的最短步数.要求不能经过# 而且路径不能经过一个三角形的内部,可以沿边走. 分析:计算几何题里不算难题,但若没想到坑点就一直卡题了. ...

  10. 东北四省赛H-Skyscraper-线段树的区间合并优化

    题目描述: At the main street of Byteland, there will be built n skyscrapers, standing sequentially one n ...

最新文章

  1. LTE网元间控制面协议
  2. 基于MATLAB的面向对象编程(4)——类文件
  3. 人民广场怎么走?地铁换乘算法的实现
  4. checkVector()
  5. vba基本操作 -- 表单操作
  6. 2:IDEA生成springboot项目,修改启动图标和网页端口
  7. 周末随笔 | 问好一个问题,有的放矢
  8. 经典MySQL语句大全和常用SQL语句命令的作用。
  9. 长沙.NET技术社区·设计到实现
  10. [TJOI2011] 书架(线段数优化dp + 单调栈)
  11. FiddlerScript-常用总结
  12. python redis插件安装
  13. 市面上有哪几种门_市面上常见的木门种类有哪些呢?
  14. 聊聊下一代监控:Prometheus
  15. SHELL 分析 列出当天访问次数最多的IP
  16. python软件下载教程-使用最方便的计算机编程软件,Python下载使用完美教程
  17. 运行成功:char转换为wchar_t的代码
  18. vue 开发app处理手机返回键问题
  19. [Transformer]Mobile-Former:Bridging MobileNet and Transformer
  20. 搭建一个 nodejs 脚手架

热门文章

  1. js 中的 let 关键字
  2. [Anaconda学习]本地查看代理ip,anaconda挂代理
  3. 显示器间歇性黑屏问题排查
  4. 股票分析之融资买入分析
  5. java 专业英语单词_java_专业英语单词_力荐
  6. 古人用计算机计算图片,人类最早的计算器《算表》如何帮助古人完成计算?
  7. 一号店主页静态页面(HTML)
  8. 论坛勋章动态特效制作流程
  9. Java-如何防止XSS攻击
  10. 【11】Kotlin项目实操之高阶函数二