进入USACO要注册才能看题: http://train.usaco.org/usacogate
题目:【翻译版、是别处的网站】http://www.wzoi.org/usaco/13%5C206.asp
SAMPLE INPUT (file calfflac.in)
Confucius say: Madam, I'm Adam.
SAMPLE OUTPUT (file calfflac.out)
11
Madam, I'm Adam
水题啊…………
/*
ID: 1006100071
PROG: calfflac
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
#include <set>
//#include <map>
#include <queue>
#include <utility>
#include <iomanip>
#include <stack>
#include <list>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <ctype.h>
using namespace std;
char buf[20005], str[20005];
int map[20005];
int main()
{
/*freopen ("calfflac.in", "r", stdin);
freopen ("calfflac.out", "w", stdout);*/
char tp[85];
int len, i, j, maxs = 0, start = 0, end = 0, k = 0;
while (fgets (tp, 85, stdin)) //fgets可以把换行符也读进tp
strcat (buf, tp); //由于是一段话,所以要不断读取
len = strlen (buf);
//************************回文不理会标点以及大小写
for (i = 0; i < len; i++)
{
if (!isalpha(buf[i]))
continue;
map[k] = i; //str的第k个字符映射到原串的第i个字符
if (isupper(buf[i]))
str[k++] = tolower (buf[i]);
else str[k++] = buf[i];
}
//************************找最大回文maxs,以及回文开端start和回文末端end
for (i = 0; i < k; i++) //枚举回文中点
{
for (j = 0; ; j++) //回文长度为奇数
{
if (i - j < 0 || i + j > k || str[i-j] != str[i+j])
{//超界或不相等都会使回文中断, 下面同理
if (maxs < 2 * j - 1)
{
maxs = 2 * j - 1;
start = i - j + 1;
end = i + j - 1;
}
break;
}
}
for (j = 0; ; j++) //回文长度为偶数
{
if (i - j < 0 || i + j + 1 >= k || str[i-j] != str[i+j+1])
{
if (maxs < 2 * j)
{
maxs = 2 * j;
start = i - j + 1;
end = i + j;
}
break;
}
}
}
printf ("%d\n", maxs);
for (i = map[start]; i <= map[end]; i++)//输出原串,所以要映射到原串的开端和末端
printf ("%c", buf[i]);
printf ("\n");
return 0;
}
分享到:
相关推荐
《USACO中的Calf Flac》 USACO(美国计算机奥林匹克)是面向全球青少年的一项编程竞赛,旨在提升参赛者的算法设计与编程能力。在USACO的第一章中,我们经常会遇到各种有趣的题目,其中之一就是"Calf Flac"。这道...
USACO,全称为United States Computer Olympiad,是一项面向美国中学生的计算机编程竞赛,旨在培养学生的算法思维和问题解决能力。这个压缩包包含的是USACO历年月赛的试题,以及部分试题的数据和详细题解,是学习和...
资源中的"USACO英文原题.pdf"提供了所有试题的原始英文版本,这对于熟悉英文阅读和理解国际标准的表述至关重要。同时,"USACO全部译题.pdf"则为这些题目提供了中文翻译,帮助那些英语阅读能力有限或希望更直观理解...
USACO(美国计算机奥林匹克竞赛,USA Computing Olympiad)是针对中学生的一项国际级计算机编程竞赛,旨在提高学生使用计算机解决问题的能力,参赛者需要使用编程语言解决一系列富有挑战性的算法问题。USACO的题目...
USACO 官网第一到 五章 练习题中文语言官方数据 fps格式支持导入所有OJ 1 [1.1] 你的飞碟在这儿 Your Ride Is Here 2 [1.1] 贪婪的送礼者Greedy Gift Givers 3 [1.1] 黑色星期五Friday the Thirteenth 4 [1.1] 坏掉...
USACO试题精选是一本精选了美国计算机奥林匹克竞赛(USACO)历史上部分题目的题库,包含了诸多针对C++编程的学习题目。这些题目覆盖了多方面的知识点,不仅适合学习算法和编程技巧,而且对于C++学习者来说,是一套很...
USACO,全称为United States Computer Olympiad,是一项面向中学生的国际性计算机编程竞赛,旨在提升参赛者在算法设计、问题解决以及编程方面的技能。USACO比赛通常包含多个编程题目,参赛者需要使用C++、Java等语言...
《USACO历年试题——2002》 USACO,全称为USA Computing Olympiad,是美国计算机奥林匹克竞赛,旨在提升中学生的算法设计和编程能力。2002年的USACO试题集,是这一赛事历史上的一个重要部分,对于学习算法、准备ACM...
### USACO月赛十年题典知识点概览 #### 一、USACO简介与重要性 - **USACO**(USA Computing Olympiad)是美国计算机奥林匹克竞赛,旨在为美国选拔并培养参加国际信息学奥林匹克(IOI)的队伍。自2000年以来,USACO...
USACO(United States of America Computing Olympiad,美国信息学奥林匹克竞赛)是一个面向中学生的计算机编程竞赛,题解整理版中涉及的几个题目,下面将一一介绍它们的解题思路和涉及的关键知识点。 首先,...
这个合集提供了丰富的资源,包括英文原题、中文译题、测试数据以及解答,对于想要深入学习和准备USACO竞赛的学生来说,是一份极其宝贵的资料。 1. **USACO译题.chm**:这份文件包含了USACO历年竞赛的题目翻译,对于...
USACO,全称为United States阿Olympiad in Informatics,是美国计算机奥林匹克竞赛,旨在为高中生提供一个学习和展示编程技能的平台。这个比赛涵盖了算法、数据结构以及问题解决等多个方面,对于想要深入理解计算机...
"USACO全部译题.pdf"则是一份完整的题解集,包含了对所有原题的中文翻译和解答。这些解答通常详细解释了问题的解决方案,包括思路、算法和代码实现,对于学习者来说,是理解题目和检查自己解题思路的重要参考。 ...
8. **模拟和建模**:对实际问题的抽象和建模,然后用程序进行模拟,比如模拟交通灯控制、模拟水桶打水等问题。 9. **竞赛编程技巧**:如快速读入、输出格式化、调试技巧等,这些都是在竞赛环境中提高效率的关键。 ...
USACO,全称为United States Computer Olympiad,是一项面向全球中学生的计算机编程竞赛,旨在提升参赛者的算法设计、问题解决和编程能力。该比赛每年举行,分为青铜、白银、黄金和铂金四个级别,难度逐渐递增。...
### USACO 2010-2011 季度竞赛概览与关键信息 #### 一、概述 美国计算机奥林匹克(USACO)是面向全球中学生的计算机科学竞赛,旨在发掘并培养计算机科学领域的年轻人才。USACO 2010-2011 季度竞赛于 2010 年 11 月...
含2001~2017全部比赛赛题测试...2001~2007 数据√ 题面× 标程题解× 2008~2010 数据√ 题面√ 标程题解× 2011~2017 数据√ 题面√ 标程题解√ 其中除2008~2010外其他年份均按照年度、月度、金银铜白金组别整理完全
【USACO 英汉对照题目】是USA Computing Olympiad(美国计算机奥林匹克竞赛)的一部分,这是一个专门为信息学竞赛选手提供训练的在线题库。USACO 提供了一种章节递进的学习模式,从基础到高级,涵盖C和C++语言,帮助...