`

【水题】USACO Calf Flac

阅读更多
进入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全部译题

    USACO全部译题,美国题库USACO全部译题,超经典的题目

    USACO经典试题配数据

    美国著名题库USACO的经典试题,配上测试数据和pascal的std标程。祝OIers在信息竞赛的道路上能走得远

    USACO试题英文原题、译题及相应题解

    其中包含了USACO前些年的月赛试题和部分试题的数据,部分试题的详细题解,英文原题目与翻译后的题目,与题解一一对应

    USACO做题代码

    USACO做题代码

    usaco 合集usaco 合集usaco 合集

    usaco 合集,包括英文原题和中文译题,测试数据以及答案,很全啊!usaco 合集usaco 合集usaco 合集usaco 合集

    USACO试题精选.pdf

    这个是USACO题库中选出来的一些题,覆盖了多方面的知识点,利于锻炼C++学者的算法,里面还有部分题解

    usaco2006 mar.zip

    仅提供usaco 2006 mar 数据,2006其它时间网上很多。美国著名题库USACO的经典试题,祝OIers在信息竞赛的道路上能走得远

    USACO月赛十年题典

    USACO月赛的金组题目,从2000-2009 , 全中文翻译。

    USACO题解整理版

    数据结构机考所参考的USACO网站所有题目的解题思路,资源比较稀有!

    usaco历年试题---2002

    pku acm上的一系列usaco题目都可以在这里找到测试数据以及源代码,不过题目的名字和pku上有得有点出入,需要自己去比较一下,2002年

    usaco历年测试数据

    usaco历年测试数据

    USACO 历年全部测试数据

    含2001~2017全部比赛赛题测试...2001~2007 数据√ 题面× 标程题解× 2008~2010 数据√ 题面√ 标程题解× 2011~2017 数据√ 题面√ 标程题解√ 其中除2008~2010外其他年份均按照年度、月度、金银铜白金组别整理完全

    USACO题集及答案

    USACO题集及答案

    USACO试题精选

    USACO的一些题目代码和月赛十年题典,以及部分题解

    USACO答案及详解

    某些USACO题目的答案,很详细,代码清晰结构良好,算法高效易于调试

    usaco心得及总结

    usaco的总结和心得 包括了对题目的分了和总结 以及对题目的解法概括

    USACO翻译及题解

    USACO教程,包含USACO全部英文原题,题解(NOCOW整理版),翻译,教程,代码,测试数据。

    USACO所有题目题解

    USACO所有题目的题解 NOCOW整理版

Global site tag (gtag.js) - Google Analytics