| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 330 人关注过本帖
标题:usaco 1.3.3
只看楼主 加入收藏
明明狈
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-6-12
结帖率:0
收藏
已结贴  问题点数:20 回复次数:1 
usaco 1.3.3
usaco 1.3.3
我自己的程序,现在我都看不懂了
各位高手看看错在哪?


/*
ID: simon532
PROG: calfflac
LANG: C++
*/

#include <fstream>
#include <string.h>

using namespace std;

ifstream fin("calfflac.in");
ofstream fout("calfflac.out");

int main()
{
char a[5000];



int b[5000];
int c,d,l=0;

   
while(!fin.eof())
    {
   
    fin.get(a[l]);   
    c=a[l]-'A'+1;
    if(c<0)
    b[l]=0;
    else
    {   
        if(c<=26)
            b[l]=c;
        else
        {
            if(c>=33&&c<=59)
            b[l]=c-32;
            else
            b[l]=0;
        }
    }
    l++;
    }

c=0,d=0;
int q,h,e,be,en,st,nd;

for(int i=1;i<strlen(a);i++)
{
    q=1;h=1;c=0;e=0;
    if(b[i]!=0)
    {
    for(;e==0;)
    {
   
    if(b[i-q]!=0&&i-q>=0)
        {
        if(b[i+h]!=0&&i+h<strlen(a))
        {
            if(b[i-q]==b[i+h])
            {
            c++;
            st=q;
            q++;
            nd=h;
            h++;
            }else
            {
                if(c>d)
                {
                d=c;
                e++;
                be=i-st;
                en=i+nd;
                }
                else
                e++;
                }
        }
        else
        h++;
        }
    else
    q++;
   
        /*    if(i-q<0||i+h>strlen(a))
            {
                    if(c>d)
                    {
                    d=c;
                    e++;
                    be=i-st;
                    en=i+nd;
                    }else
                    e++;
            }*/
        }
    }
}

d=d*2+1;
int u,v=0,st1,nd1,be1,en1;
for(int i=1;i<strlen(a);i++)
{
    h=1;c=0;e=0;u=i;
    if(b[i]!=0)
    {for(;e==0;)
    {
        if(b[u]!=0&&u>=0)
        {
        if(b[i+h]!=0&&i+h<strlen(a))
        {
            if(b[u]==b[i+h])
            {
            c++;
            st1=u;
            u--;
            nd1=h;
            h++;
            }
            else
            {
                if(c>v)
                {
                v=c;
                e++;
                be1=st1;
                en1=i+nd1;
                }
                else
                e++;
                }
        }
        else
        h++;
        }
    else
    u--;
   
        /*    if(u<0||i+h>strlen(a))
            {
                    if(c>v)
                    {
                    v=c;
                    e++;
                    be1=st1;
                    en1=i+nd1;
                    }
                    else
                    e++;
            }*/
        }
    }
}

v=(v-3)*2;

if(v>d)
{
fout<<v<<endl;
for(int i=be1;i<=en1;i++)        
fout<<a[i];
}
else
{
fout<<d<<endl;
for(int i=be;i<=en;i++)        
fout<<a[i];
}

fout<<endl;
fin.close();
fout.close();
return 0;
}
搜索更多相关主题的帖子: usaco 
2010-06-12 16:22
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:20 
什么说明都没有,怎么看?花大把时间一句一句研究??~~
2010-06-12 20:44
快速回复:usaco 1.3.3
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021015 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved