Calf Flac-usaco
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相关推荐
- USACO Training Section 1.3 Calf Flac 解题报告AC代码
解题报告: 主要方法是生长法,考虑每一位的左右各有多长的回文串,输出最长的那个,比较好想--不过要注意区分字串的奇偶. 其他实现细节看代码里的注释吧-- AC代码: /* ID: yuanmz91 P ...
- USACO SEC.1.3 No.3 Calf Flac
题意:给出一篇文章,求略去其中的空格等各种字符(剩余大小写字母后)文中的最长回文子串,输出长度并打印原文中对应的字符串 核心:枚举回文串 枚举回文串的中点下标是一个比较好的方法,如果反复枚举回文起始点 ...
- usaco Calf Flac(O(n)时间求回文串长度)
好高兴,为数不多的我没看题解的题·,我用的是O(n)时间求回文串长度的算法算法在我上一篇博客. 然后就是注意细节了. /* ID:jinbo wu TASK: calfflac LANG:C++ */ ...
- [USACO 1.3.3]Calf Flac
o(︶︿︶)o 烦躁,看了半天没看懂这个O(n)的回文串算法是什么东西,直接套上模板就交了.然后AC了 题目: Description 据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘), ...
- hdu与poj题目分类
POJ 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(po ...
- 杭电oj题目题型分类(转)
1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...
- HDOJ题目分类大全
版权声明:本文为博主原创文章,欢迎转载,转载请注明本文链接! https://blog.csdn.net/qq_38238041/article/details/78178043 杭电里面有很多题目, ...
- HDU题目分类大全【大集合】
基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.105 ...
- 杭电OJ题目分类(转载)
1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...
- hdoj杭电问题分类
杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...
最新文章
- javascript之变量,作用域和内存问题
- HTML iframe 和 frameset 的区别
- Silverlight专题(WatermarkedTextBox使用)--摘录 很受用
- 优点 spark_spark(一)
- Java经典实例:处理单个字符串
- 測试AtomicInteger与普通int值在多线程下的递增操作
- 十四.激光和惯导LIO-SLAM框架学习之惯导内参标定
- 股东接连减持 寒武纪2021年净亏损8.47亿元
- 华为云 git 托管代码 教程
- JS new一个对象的过程
- 泰勒公式的展开细节解析
- XML 格式化转字符串
- 安装kata container with cri-o
- python文件怎么另存为,python文件怎么保存
- 讯飞语音转写php版demo
- 第二章:华为VRP(理论+实验命令)
- Lucene学习——IKAnalyzer中文分词(一)
- 2021澳洲大学计算机专业排名,澳洲纽卡斯尔大学UoN计算机科学Computer Science专业排名第201-250位(2021年THE世界大学商科排名)...
- 加拿大前十大学计算机硕士学费,加拿大各大学硕士学费的情况介绍
- 王半仙儿的日记-0007