UVAlive6439_Pasti Pas!

时间:2022-12-30 08:59:27

题目是说给你一个字符串,现在要你用一些特殊的符号代替这个字符串中某一些子串,使得被替换后的串是一个回文串。

现在要你求替换后的字符串的最大的可能的长度。

其实这个题目没有什么固定的算法哦,我直接暴力就过了,但是中间手滑,wa了太多发。

其实可以这样来考虑,我们这个字符串的反序也保存一遍,这样可以建立起一个类似于链表的结构(对于每一个字符,我们在这里指向它下一次出现的下标)

这样如果最后可以被替换为n个串,那么一定存在x1,x2,……,xn,是的1-x1,x1-x2,……xn-1-xn是完美的反向匹配的。

同时我们需要维护每一个x最小,这样就一定是最小的。

虽然可能出现极限数据使得复杂度为n^2,但是……(可能卡到n方吗?)

#include <iostream>
#include <cstdio>
#include <cstring>
#define maxn 100100
using namespace std; int next[][maxn][];
char s[][maxn];
int n,m,k,t,pos[],ans,cas=; void init_Z(int x)
{
memset(pos,0x3f,sizeof pos);
for (int i=n; i>; i--)
{
pos[s[x][i]-'A']=i;
for (int j=; j<; j++)
next[x][i][j]=pos[j];
}
} int match(int x)
{
if (x>n/)
{
if ((n&) && x==n/+) return ;
else return ;
}
int pos=max(next[][x][s[][x]-'A'],next[][x][s[][x]-'A']);
while ()
{
if (pos>n/) return ;
bool flag=true;
for (int i=; i<pos-x+; i++)
if (s[][x+i]!=s[][pos-i])
{
flag=false;
break;
}
if (flag)
return +match(pos+);
else pos=max(next[][pos+][s[][x]-'A'],next[][pos+][s[][x]-'A']);
} } int main()
{
scanf("%d",&t);
while (t--)
{
scanf("%s",s[]+);
n=strlen(s[]+);
for (int i=; i<=n; i++) s[][i]=s[][n+-i];
init_Z(); init_Z();
ans=match();
printf("Case #%d: %d\n",++cas,ans);
}
return ;
}

UVAlive6439_Pasti Pas!的更多相关文章

  1. Delphi项目构成之单元文件PAS

    单元文件是Pascal源文件,扩展名为.pas. 有三种类型的单元文件: 窗体/数据模块和框架的单元文件(form/data module and frame units),一般由Delphi自动生成 ...

  2. Delphi 包的设计思想及它与PAS、BPL、DCU、DLL、OXC的关系。

    DCP ,BPL分别是什么文件,起什么作用?你在DELPHI中建立一个package然后保存一下,看看. bpl和Dll比较相似.只是BPL是BORLAND自己弄出来的东西!!!调用也和调用DLL相似 ...

  3. 5、利用控件TVCLZip和TIdFTP压缩文件并上传到FTP的线程单元pas 改进版

    用到临界区 保护写日志的函数: 递归函数 删除目录下的所有文件: 循环创建或判断FTP的目录: 可改进的地方:循环压缩深层次目录的所以文件: 实现断点续传,或断点下载: {************** ...

  4. F2063 Could not compile used unit &&num;39&semi;tt&period;pas&&num;39&semi;

    install packge error F2063 Could not compile used unit 'tt.pas' 有可能是工程的pas文件相对路径不对.在工程管理看是否能打开文件,如果打 ...

  5. Android问题-XE5提示&quot&semi;&lbrack;DCC Fatal Error&rsqb; Project1&period;dpr&lpar;1&rpar;&colon; F1027 Unit not found&colon; &&num;39&semi;System&period;pas&&num;39&semi; or binary equivalents &lpar;&period;dcu&sol;&period;o&rpar;&quot&semi;

    问题现象:Checking project dependencies...Compiling Project1.dproj (Debug, Android)dcc command line for & ...

  6. Messages&period;pas里的消息

    一.Windows 消息大全 这张表拷贝自万一兄的帖子:http://www.cnblogs.com/del/archive/2008/02/25/1079970.html 但是我希望自己能把这些消息 ...

  7. 问题-RZ安装后报错&OpenCurlyDoubleQuote;RzBorder&period;pas”

    错误象现:[Error] RzBorder.pas(1429): Number of elements differs from declaration [Fatal Error] RzEdit.pa ...

  8. 问题-&lbrack;致命错误&rsqb; Project1&period;dpr&lpar;1&rpar;&colon; Unit not found&colon; &&num;39&semi;System&period;pas&&num;39&semi; or binary equivalents &lpar;DCU&comma;DPU&rpar;

    问题现象:[致命错误] Project1.dpr(1): Unit not found: 'System.pas' or binary equivalents (DCU,DPU) 问题原因:由于删除D ...

  9. 问题-&lbrack;Delphi&rsqb;MainFrame&period;pas&lpar;4340&rpar;&colon; E2036 Variable required

    问题现象:写了一个TObjectList的Sort方法,但是写成ObjectList.Sort(@SortBridgeEDOReportQtys); 再F9时提示“E2036 Variable req ...

随机推荐

  1. Rank&lpar;&rpar; 、DENSE&lowbar;RANK&lpar;&rpar;、NTILE&lpar;n&rpar;的用法-转

    Rank() over()/DENSE_RANK()  over()的用法 1.Rank() over()/DENSE_RANK()  over() 这两个函数与ROW_NUMBER()函数类似,因为 ...

  2. poj 3253 初涉二叉堆 模板题

    这道题很久以前就做过了 当时是百度学习了优先队列 后来发现其实还有个用sort的办法 就是默认sort排序后 a[i]+=a[i-1] 然后sort(a+i,a+i+n) (大概可以这样...答案忘了 ...

  3. gradient color

    http://www.cnblogs.com/YouXianMing/p/3793913.html layer 不能自动autolay, 只能在viewDidLayout里面设置宽度 - (void) ...

  4. 三、Hadoop学习笔记————从MapReduce到Yarn

    Yarn减轻了JobTracker的负担,对其进行了解耦

  5. MongoDB批量操作及与MySQL效率对比

    本文主要通过批量与非批量对比操作的方式介绍MongoDB的bulkWrite()方法的使用.顺带与关系型数据库MySQL进行对比,比较这两种不同类型数据库的效率.如果只是想学习bulkWrite()的 ...

  6. Light Oj 1003

    题意 : 给你m个二元关系, 问是否可以确定各个节点的先后关系: 思路: 拓扑排序, 判断是否有环: #include<bits/stdc++.h> using namespace std ...

  7. CentOS 查看文件大小 du -hs filename

    du -hs  [filename] 查看目录大小 [root@localhost opt]# 16M apache-tomcat- df -hv 查看整个磁盘使用状况 [root@rabbit66 ...

  8. JSON数据的处理中的特殊字符

    JSON现在是很常见的处理数据的方式了.但由于自己使用的是反射获取数据,必须自己处理特殊字符,但总是发现有一些看不见的字符在前台 var obj = jQuery.parseJSON(msg);会转换 ...

  9. 数据库相关 Mysql基本操作

    数据库相关 设计三范式: 第一范式: 主要强调原子性 即表的每一列(字段)包含的内容,不能再拆分.如果,某张表的列,还可以细分,则违背了数据库设计的第一范式. 第二范式: 主要强调主键,即:数据库中的 ...

  10. 关于 ThinkPHP5 使用 getBy 字段名方式获取数据

    关于 ThinkPHP5 使用 getBy 字段名方式获取数据 有小伙半说怎么全文搜索都没有搜索到 getByName 之类的函数. 其实是在这里.