题意:据说假设你给无限仅仅母牛和无限台巨型便携式电脑(有很大的键盘),那么母牛们会制造出世上最优秀的回文。

你的工作就是去寻找这些牛制造的奇观(最优秀的回文)。

在寻找回文时不用理睬那些标点符号、空格(但应该保留下来以便做为答案输出),仅仅用考虑字母'A'-'Z'和'a'-'z'。要你寻找的最长的回文的文章是一个不超过20,000个字符的字符串。 我们将保证最长的回文不会超过2,000个字符(在除去标点符号、空格之前)。

暴力 注意一些细节 输入字符中有回车啊之类的 wins下 输完按回车按Ctrl+z再按回车即可了

ubuntu下是Ctrl+z

代码:

#include <algorithm>

#include <iostream>

#include <sstream>

#include <cstdlib>

#include <cstring>

#include <iomanip>

#include <cstdio>

#include <string>

#include <bitset>

#include <vector>

#include <queue>

#include <stack>

#include <cmath>

#include <list>

#include <map>

#include <set>

#define sss(a,b,c) scanf("%d%d%d",&a,&b,&c)

#define mem1(a) memset(a,-1,sizeof(a))

#define mem(a) memset(a,0,sizeof(a))

#define ss(a,b) scanf("%d%d",&a,&b)

#define s(a) scanf("%d",&a)

#define INF 0x3f3f3f3f

#define w(a) while(a)

#define PI acos(-1.0)

#define LL long long

#define eps 10E-9

#define N 100010<<1

#define mod 1000000000+7

using namespace std;

void mys(int& res)

{

    int flag=0;

    char ch;

    while(!(((ch=getchar())>='0'&&ch<='9')||ch=='-'))

        if(ch==EOF)  res=INF;

    if(ch=='-')  flag=1;

    else if(ch>='0'&&ch<='9')  res=ch-'0';

    while((ch=getchar())>='0'&&ch<='9')  res=res*10+ch-'0';

    res=flag?-res:res;

}

void myp(int a)

{

    if(a>9)

        myp(a/10);

    putchar(a%10+'0');

}

/********************the end of template********************/

struct node{

    int st, ed, lenth;

}s;

struct strtr{//副本

    int pos;

    char c;

}strt[20001];

char str[20001];

bool can(char x, char y){

     if(x == y || (x - y == ('a' - 'A')) || (y - x == ('a' - 'A'))) return true;

     return false;

}

int main(){

        int j, k;

        char ch;

        int top = 0, len = 0;

        w((ch = getchar()) != EOF){

           str[len++] = ch;

           if(isalpha(ch)){

                strt[top].c = ch;

                strt[top++].pos = len-1;

           }

        }

        s.lenth = -1;

        for(int i = 0; i < top ; i ++){

            if(strt[i].c != strt[i+1].c){

                for(j = i-1, k = i+1; j>=0 && k<top; j--, k++){

                    if(!can(strt[j].c,  strt[k].c )) break;

                }

            }

            else{

                for(j = i-1, k = i + 2; j>=0 && k<top; j--, k++){

                    if(!can(strt[j].c,  strt[k].c )) break;

                }

            }

            if(s.lenth < k - j - 1){

                s.st = strt[j+1].pos;

                s.ed = strt[k-1].pos;

                s.lenth = k - j - 1;

            }

        }

        cout<<s.lenth<<endl;

        for(int i=s.st; i<=s.ed; i++)

            cout<<str[i];

        cout<<endl;

    return 0;

}

USACO Section 1.3 : Calf Flac (calfflac)的更多相关文章

  1. USACO 1.3.3 Calf Flac(Manacher算法)

    Description 据说如果你给无限只母牛和无限台巨型便携式电脑(有非常大的键盘),那么母牛们会制造出世上最棒的回文.你的工作就是去寻找这些牛制造的奇观(最棒的回文). 在寻找回文时不用理睬那些标 ...

  2. USACO 6.2 Calf Flac

    Calf Flac It is said that if you give an infinite number of cows an infinite number of heavy-duty la ...

  3. Calf Flac

    1.3.3 Calf Flac Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 223  Solved: 42[Submit][Status][Forum] ...

  4. USACO Section 1.3 题解 (洛谷OJ P1209 P1444 P3650 P2693)

    usaco ch1.4 sort(d , d + c, [](int a, int b) -> bool { return a > b; }); 生成与过滤 generator&& ...

  5. USACO Section 3.3: Riding the Fences

    典型的找欧拉路径的题.先贴下USACO上找欧拉路径的法子: Pick a starting node and recurse on that node. At each step: If the no ...

  6. USACO Section 3.3 Camlot(BFS)

    BFS.先算出棋盘上每个点到各个点knight需要的步数:然后枚举所有点,其中再枚举king是自己到的还是knight带它去的(假如是knight带它的,枚举king周围的2格(网上都这么说,似乎是个 ...

  7. [IOI1996] USACO Section 5.3 Network of Schools(强连通分量)

    nocow上的题解很好. http://www.nocow.cn/index.php/USACO/schlnet 如何求强连通分量呢?对于此题,可以直接先用floyd,然后再判断. --------- ...

  8. USACO Section 5.3 Big Barn(dp)

    USACO前面好像有类似的题目..dp(i,j)=min(dp(i+1,j),dp(i+1,j+1),dp(i,j+1))+1  (坐标(i,j)处无tree;有tree自然dp(i,j)=0) .d ...

  9. USACO Section 1.3 Prime Cryptarithm 解题报告

    题目 题目描述 牛式的定义,我们首先需要看下面这个算式结构: * * * x * * ------- * * * <-- partial product 1 * * * <-- parti ...

随机推荐

  1. Jquery学习总结(3)——Jquery获取当前城市的天气信

    Jquery代码: function findWeather() {     var cityUrl = 'http://int.dpool.sina.com.cn/iplookup/iplookup ...

  2. servlet调用的几种方式

    參见 文库/java/javaEE全新学习教程2.2节 1.通过URL调用 2通过提交表单 3超链接 4 javascript写一个函数,调用这个函数 1,首先在project的WebRoot目录下建 ...

  3. [Python Test] Use pytest fixtures to reduce duplicated code across unit tests

    In this lesson, you will learn how to implement pytest fixtures. Many unit tests have the same resou ...

  4. 初识Dubbo 系列之5-Dubbo 成熟度

    成熟度 功能成熟度 Feature特征 Maturity成熟度 Strength强度 Problem问题 Advise建议 User用户 并发控制 Tested 并发控制   试用   连接控制 Te ...

  5. SpringMVC(一) 简单代码编写,注解,重定向与转发

    SpringMVC是什么 SpringMVC是目前最好的实现MVC设计模式的框架,是Spring框架的一个分支产品,以SpringIOC容器为基础,并利用容器的特性来简化它的配置.SpringMVC相 ...

  6. 【算法】Bellman-Ford算法(单源最短路径问题)(判断负圈)

    单源最短路问题是固定一个起点,求它到其他所有点的最短路的问题. 算法: 设 d[i]  表示 起点 s 离点 i 的最短距离. [1.初始化]  固定起点s,对所有的点 , 如果 i =  s ,  ...

  7. 《鸟哥的Linux私房菜》笔记——01. 计算机概论

    计算机的五大部分:输入单元.输出单元.CPU(控制单元(Control Unit).算数逻辑单元(ALU)).内存. CPU 的架构 精简指令集(Reduced Instruction Set Com ...

  8. 解决maven 无法下载java-memcached的依赖问题

    1.进入https://github.com/gwhalin/Memcached-Java-Client/downloads 下载java-memcached的jar包. 2.使用cmd进入maven ...

  9. 74HC164应用

    管脚定义与内部逻辑图 注:管脚一般A.B连在一起作为一个输入:CLR硬件接VDD. 原理如下:每8个CLK上升沿,bit分别从QA移至QH,所以给定一个字节,左移后送入至A/B,这样Bit7经过8个上 ...

  10. iptables 简单介绍及应用 Linux防火墙

    iptables 即 Linux防火墙 的简单介绍及使用 iptables生效位置如下图: 其中, 网络防火墙也可以使用一台启用了iptables的Linux主机代替; 路由器或集线器等设施在拓扑中省 ...