1.求最长回文串,而且要求记录位置。一开始用dp来做,开了一个table[2001][2001]的bool型数组,发现了空间越界!很是奇怪,换了用最简单的两头扩展的方案,问题很快解决!!以后就用这个了,空间和时间都相对很优。时间复杂度是O(n^2).

/*************************************************************************ID:panzhiz1PROG:calfflacLANG:C++Created Time: 2014/5/5 9:25:14************************************************************************/#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<fstream>
#include<stdio.h>
#include<ctype.h>
using namespace std;char input[20001];
char s[20001];
int pos[20001];
//char table[2002][2002]={0};int maxl=0;
int begin;
unsigned int n,m;
void slove(){for(int i=0;i<m;i++){int j,k,sum;j=i-1,k=i+1,sum=1;while(j>=0 && k<m && s[j]==s[k]){j--;k++;sum+=2;}if(sum>maxl){maxl=sum;begin=j+1;}j=i,k=i+1,sum=0;while(j>=0 && k<m && s[j]==s[k]){j--;k++;sum+=2;}if(sum>maxl){maxl=sum;begin=j+1;}}
}
int main(){freopen("calfflac.in","r",stdin);freopen("calfflac.out","w",stdout);n=0;m=0;
//  bool table[2001][2001];while(scanf("%c",&input[n++])!=EOF){if(isalpha(input[n-1])){s[m]=tolower(input[n-1]);pos[m++]=n-1;}}begin=0;slove();printf("%d\n",maxl);for(int i=pos[begin];i<=pos[begin+maxl-1];i++){printf("%c",input[i]);}printf("\n");
// system("pause");return 0;
}

Calf Flac-usaco相关推荐

  1. USACO Training Section 1.3 Calf Flac 解题报告AC代码

    解题报告: 主要方法是生长法,考虑每一位的左右各有多长的回文串,输出最长的那个,比较好想--不过要注意区分字串的奇偶. 其他实现细节看代码里的注释吧-- AC代码: /* ID: yuanmz91 P ...

  2. USACO SEC.1.3 No.3 Calf Flac

    题意:给出一篇文章,求略去其中的空格等各种字符(剩余大小写字母后)文中的最长回文子串,输出长度并打印原文中对应的字符串 核心:枚举回文串 枚举回文串的中点下标是一个比较好的方法,如果反复枚举回文起始点 ...

  3. usaco Calf Flac(O(n)时间求回文串长度)

    好高兴,为数不多的我没看题解的题·,我用的是O(n)时间求回文串长度的算法算法在我上一篇博客. 然后就是注意细节了. /* ID:jinbo wu TASK: calfflac LANG:C++ */ ...

  4. [USACO 1.3.3]Calf Flac

    o(︶︿︶)o 烦躁,看了半天没看懂这个O(n)的回文串算法是什么东西,直接套上模板就交了.然后AC了 题目: Description 据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘), ...

  5. hdu与poj题目分类

    POJ 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(po ...

  6. 杭电oj题目题型分类(转)

    1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...

  7. HDOJ题目分类大全

    版权声明:本文为博主原创文章,欢迎转载,转载请注明本文链接! https://blog.csdn.net/qq_38238041/article/details/78178043 杭电里面有很多题目, ...

  8. HDU题目分类大全【大集合】

    基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.  1032.1037.1040.1048.1056.105 ...

  9. 杭电OJ题目分类(转载)

    1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...

  10. hdoj杭电问题分类

    杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...

最新文章

  1. javascript之变量,作用域和内存问题
  2. HTML iframe 和 frameset 的区别
  3. Silverlight专题(WatermarkedTextBox使用)--摘录 很受用
  4. 优点 spark_spark(一)
  5. Java经典实例:处理单个字符串
  6. 測试AtomicInteger与普通int值在多线程下的递增操作
  7. 十四.激光和惯导LIO-SLAM框架学习之惯导内参标定
  8. 股东接连减持 寒武纪2021年净亏损8.47亿元
  9. 华为云 git 托管代码 教程
  10. JS new一个对象的过程
  11. 泰勒公式的展开细节解析
  12. XML 格式化转字符串
  13. 安装kata container with cri-o
  14. python文件怎么另存为,python文件怎么保存
  15. 讯飞语音转写php版demo
  16. 第二章:华为VRP(理论+实验命令)
  17. Lucene学习——IKAnalyzer中文分词(一)
  18. 2021澳洲大学计算机专业排名,澳洲纽卡斯尔大学UoN计算机科学Computer Science专业排名第201-250位(2021年THE世界大学商科排名)...
  19. 加拿大前十大学计算机硕士学费,加拿大各大学硕士学费的情况介绍
  20. 王半仙儿的日记-0007

热门文章

  1. 厉害,利用编码特长,程序员靠副业月入1000美元
  2. 【运算】超长小学生计算题
  3. superrecovery
  4. 不孝子嗣,妄称富甲一方
  5. 如何用好广发样样行?
  6. 开放创新平台,大公司的掘墓者
  7. Hitokoto——一言经典语句
  8. 线性回归(Linear Regression)
  9. Centos7/8安装docker
  10. XX云应用 nextcloud lychee