进入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中第一章中的一道题,挺有意思的。我的程序中间用到了折半查找,牺牲空间求效率
USACO全部译题,美国题库USACO全部译题,超经典的题目
美国著名题库USACO的经典试题,配上测试数据和pascal的std标程。祝OIers在信息竞赛的道路上能走得远
其中包含了USACO前些年的月赛试题和部分试题的数据,部分试题的详细题解,英文原题目与翻译后的题目,与题解一一对应
USACO做题代码
usaco 合集,包括英文原题和中文译题,测试数据以及答案,很全啊!usaco 合集usaco 合集usaco 合集usaco 合集
这个是USACO题库中选出来的一些题,覆盖了多方面的知识点,利于锻炼C++学者的算法,里面还有部分题解
仅提供usaco 2006 mar 数据,2006其它时间网上很多。美国著名题库USACO的经典试题,祝OIers在信息竞赛的道路上能走得远
USACO月赛的金组题目,从2000-2009 , 全中文翻译。
数据结构机考所参考的USACO网站所有题目的解题思路,资源比较稀有!
pku acm上的一系列usaco题目都可以在这里找到测试数据以及源代码,不过题目的名字和pku上有得有点出入,需要自己去比较一下,2002年
usaco历年测试数据
含2001~2017全部比赛赛题测试...2001~2007 数据√ 题面× 标程题解× 2008~2010 数据√ 题面√ 标程题解× 2011~2017 数据√ 题面√ 标程题解√ 其中除2008~2010外其他年份均按照年度、月度、金银铜白金组别整理完全
USACO题集及答案
USACO的一些题目代码和月赛十年题典,以及部分题解
某些USACO题目的答案,很详细,代码清晰结构良好,算法高效易于调试
usaco的总结和心得 包括了对题目的分了和总结 以及对题目的解法概括
USACO教程,包含USACO全部英文原题,题解(NOCOW整理版),翻译,教程,代码,测试数据。
USACO所有题目的题解 NOCOW整理版