CSU 1328 近似回文词(2013湖南省程序设计竞赛A题)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1328
解题报告:中文题题意就不说了。还好数据不大,只有1000,枚举回文串的中心位置,然后向两边扩展,当扩展到 k 大于要求的K的时候停止扩展,不断更新最长的长度跟开始位置最小。我先做了个预处理,先求出了a(S),然后用一个数组保存了a(S)中的字符在原来的字符串中对应的位置在哪,这样便于字符串比较,而且又可以在O(1)时间得到在原来串中的长度跟开始的位置。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = ;
char tt[maxn],str[maxn];
int loc[maxn],K; char chto(char c)
{
return c >= 'A' && c <= 'Z'? (c+'a'-'A'):c;
}
void StrCmp(char* str,int i,int j,int& left,int& right)
{
int k = ,len = strlen(str);
while(i >= && j < len)
{
if(str[i] != str[j]) k++;
if(k > K)
break;
i--,j++;
}
left = i+;
right = j - ;
}
int kuoleft(int l)
{
l--;
while(l >= && !((tt[l] >= 'A' && tt[l] <= 'Z') || (tt[l] >= 'a' && tt[l] <= 'z')))
l--;
return l+;
}
int kuoright(int r)
{
r++;
int len = strlen(tt);
while(r < len && !((tt[r] >= 'A' && tt[r] <= 'Z') || (tt[r] >= 'a' && tt[r] <= 'z')))
r++;
return r - ;
}
int main()
{
int kase = ;
while(scanf("%d",&K)!=EOF)
{
getchar();
gets(tt);
int f = strlen(tt),len = ;
for(int i = ;i < f;++i)
if((tt[i] >= 'A' && tt[i] <= 'Z') || (tt[i] >= 'a' && tt[i] <= 'z'))
{
str[len] = chto(tt[i]);
loc[len] = i;
len++; //记录这个字符在原来的子串中对应的位置
}
str[len] = NULL;
int s = ,L = ;
for(int l = ;l < len;++l)
{
int left = ,right = ;
StrCmp(str,l-,l+,left,right);
int ll = loc[left],rr = loc[right];
int lt = rr - ll + ;
if(lt > L) L = lt,s = ll;
else if(lt == L && ll < s) s = ll;
if(l < len -)
{
left = right = ;
StrCmp(str,l,l+,left,right);
ll = loc[left],rr = loc[right];
lt = rr - ll + ;
if(lt > L) L = lt,s = ll;
else if(lt == L && ll < s) s = ll;
}
}
printf("Case %d: %d %d\n",kase++,L,s+);
}
return ;
}
CSU 1328 近似回文词(2013湖南省程序设计竞赛A题)的更多相关文章
- CSU 1328: 近似回文词
省赛的A题...现场都没什么人做...其实就一暴力水题......坑死了... 1328: 近似回文词 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1 ...
- CSU 1328 近似回文词【最长回文字符串(三种方法)】
输入一行文本,输出最长近似回文词连续子串.所谓近似回文词是指满足以下条件的字符串: 1. S以字母开头,字母结尾 2. a(S)和b(S)最多有2k个位置不同,其中a(S)是S删除所有非字母字符并且把 ...
- CSU 1337 搞笑版费马大定理(2013湖南省程序设计竞赛J题)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1337 解题报告:虽然x和y的范围都是10^8,但是如果a 是大于1000的话,那么a^3 ...
- csuoj 1328: 近似回文词
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1328 1328: 近似回文词 Time Limit: 1 Sec Memory Limit: 1 ...
- csu-1328 近似回文词 和 最长回文字符串
原博文地址:http://blog.csdn.net/u012773338/article/details/39857997 最长回文子串 描述:输入一个字符串,求出其中最长的回文子串.子串的含义是: ...
- 字符串 - 近似回文词 --- csu 1328
近似回文词 Problem's Link:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1328 analyse: 直接暴力枚举每一个终点,然后枚举 ...
- CSU 1503 点到圆弧的距离(2014湖南省程序设计竞赛A题)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1503 解题报告:分两种情况就可以了,第一种是那个点跟圆心的连线在那段扇形的圆弧范围内,这 ...
- 2012年湖南省程序设计竞赛E题 最短的名字
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1115 解题报告:输入n个字符串,让你求出可以用来区别这些字符串的最少的前缀总共有多少个字 ...
- 401 Palindromes(回文词)
Palindromes A regular palindrome is a string of numbers or letters that is the same forward as ba ...
随机推荐
- 使用BPEL创建Web服务组合
http://www.cnblogs.com/ahhuiyang/archive/2012/12/18/2824131.html 为简单起见,本例的Web服务组合只调用一个Web Service AP ...
- 闭包->类的实例数组排序
简单的字符串数组排序就一句话 Arr.sort(function(s1,s2){return s1.localeCompare(s2));//升序 Arr.sort(function(s1,s2){r ...
- 【浅谈html5 响应式布局之自动适应屏幕宽度】
允许网页宽度自动调整 “自适应网页设计”到底是怎么做到的?其实并不难. 首先,在网页代码的头部,加入一行viewport元标签. <meta name=”viewport” content=”w ...
- ci重定向
ci重定向 对于/index.php/abc这种url,Apache和lighttpd会按"index.php?abc"来解释,而nginx会认为是请求名字是"index ...
- python操作数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
- js数组特定位置元素置空,非null和undefined,实现echarts现状图效果;谷歌格式化压缩js代码
一.想要实现eCharts线状图表的断点效果,如图(后来又查到数据格式为data:['-', 2, 3,'-' , 5, 6, 7]:也可以断点显示) 这种效果,在设置数据的时候应该是这样: data ...
- tamper参数
"tamper/apostrophemask.py","tamper/equaltolike.py","tamper/greatest.py" ...
- Java并发编程核心方法与框架-CountDownLatch的使用
Java多线程编程中经常会碰到这样一种场景:某个线程需要等待一个或多个线程操作结束(或达到某种状态)才开始执行.比如裁判员需要等待运动员准备好后才发送开始指令,运动员要等裁判员发送开始指令后才开始比赛 ...
- java web项目实现文件下载
现在项目里面有个需求,需要把系统产生的日志文件给下载到本地先获取所有的日志文件列表,显示到界面,选择一个日志文件,把文件名传到后台: File file = new File(path);// pat ...
- PHP Warning: date() [function.date]: It is not safe to rely on the system's timezone
在用PHP5.3以上的PHP版本时,只要是涉及时间的会报一个 Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the ...