• P1024 外星人的密码数字


    P1024 外星人的密码数字
    时间: 1000ms / 空间: 131072KiB / Java类名: Main

    描述

        XXXX年突然有外星人造访,但大家语言不通,不过科学家们经过研究发现外星人用26个英文字母组成的单词中最长不降子序列的长度来表述数字,且英文字母的排列顺序不同,现给出其排列顺序,再给出外星人说的每个数字(其实是每个英文单词,用空格隔开),翻译出外星人所说的数字(连续输出,最后加回车)。
     (因为是最长不降子序列,所以数字中没有0,也就是说外星人的数字是>=1的数字)
    例如
         我们正常的字母排列顺序是abcdefg…….xyz,代表a<b<c<…..<x<y<z
         abcd efg hhh ihg四个字符串的最长不降子序列的长度分别为4 3 3 1

    输入格式

    第1,2行为字符串
    含义如题描述

    输出格式

    输出答案
    含义如题描述

    测试样例1

    输入

    abcdefghijklmnopqrstuvwxyz 
    abcd efg hhh ihg

    输出

    4331

    备注

    1<=第二行长度<=255


    该题被某人形容为恶心。。。。
    其实也不是很难做吧?感谢!
    zzy
     

     
    注意一下不是按字典序来排序的QAQ做个小处理,然后它输出每个读入的字符串的最长不降子序列的长度而且中间没有空格
    //while(scanf("%s",a+1)!=EOF)会读入n个串,没告诉你n多少。这时候你要一直读到文件末,eof就是文件末
    //别忘了读入是a+1 strlen也要(a+1)
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    int val[30],ans,f[300],n;
    char a[260];
    int main()
    {    
        scanf("%s",a+1);
        for(int i=1;i<=26;i++)
        {
            val[a[i]-'a']=i;
        }
        
        while(scanf("%s",a+1)!=EOF)
        {
            n=strlen(a+1);
            ans=0;
            memset(f,0,sizeof(f));
            for(int i=1;i<=n;i++)
            {
                for(int j=0;j<i;j++)
                {
                    if(val[a[i]-'a']>=val[a[j]-'a'])
                    {
                        f[i]=max(f[i],f[j]+1);
                        ans=max(ans,f[i]);
                    }
                }
            }
            printf("%d",ans);
        }
        puts("");
        return 0;
    }
    View Code
  • 相关阅读:
    Oracle:Using the DBMS_STATSpackage
    Oracle partitioning is not always a good idea.
    Oracle: Benefits and consequences of the NOLOGGING option
    Oracle :Insert ways.
    Oracle:临时表的统计信息
    C#中使用DTS来导入数据及相关问题
    [收藏]CSS网页制作时实现自动换行的小技巧
    新加了牛人的Blog链接
    在.Net下使用Access 的日期类型 及与js的日历控件交互
    在程序中生成PDF
  • 原文地址:https://www.cnblogs.com/gc812/p/5792780.html
Copyright © 2020-2023  润新知