zoukankan      html  css  js  c++  java
  • Codeforces Round #256 (Div. 2) B (448B) Suffix Structures


    题意就是将第一个字符串转化为第二个字符串,支持两个操作。一个是删除,一个是更换字符位置。

    简单的字符串操作!。

    AC代码例如以下:

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    #define  M 50010
    #define inf 100000000
    using namespace std;
    
    char a[1005],b[1005];
    int la,lb;
    
    bool  automaton()
    {
        int i=0,j=0,flag=0;
        while(a[i]!='')
        {
            if(a[i]==b[j])
            {
                i++;
                j++;
                flag++;
            }
            else
            {
                i++;
            }
        }
        if(flag==lb) return true;
        return false;
    }
    
    
    int main()
    {
        int i,j;
        int c[500],d[500];
        cin>>a;
        cin>>b;
        la=strlen(a);
        lb=strlen(b);
        if(lb>la)
        {
            printf("need tree
    ");
            return 0;
        }
        if(la==lb)
        {
            memset(c,0,sizeof c);
            memset(d,0,sizeof d);
            for(i=0;i<la;i++)
                c[a[i]]++;
            for(i=0;i<lb;i++)
                d[b[i]]++;
            int ans=0;
            for(i='a';i<='z';i++)
                if(c[i]==d[i])
                ans++;
            if(ans==26)
            {
                printf("array
    ");
                return 0;
            }
        }
        else if(automaton())
        {
            printf("automaton
    ");
            return 0;
        }
            memset(c,0,sizeof c);
            memset(d,0,sizeof d);
            int anss=0;
            for(i=0;i<lb;i++)
                d[b[i]]++;
            for(i=0;i<la;i++)
                c[a[i]]++;
                for(i='a';i<='z';i++)
                    if(d[i]!=0)
                    anss++;
            int an=0;
            for(i='a';i<='z';i++)
                if(c[i]>=d[i]&&d[i]!=0)
                    an++;
            //cout<<an<<" "<<anss<<endl;
            if(an==anss)
            {
                printf("both
    ");
                return 0;
            }
            printf("need tree
    ");
    
    
        return 0;
    }


  • 相关阅读:
    MyEclipse 工具优化和初始化设置
    ubuntu添加软件源
    C/C++数组名与指针区别深入探索
    为什么不常见include .c文件
    [置顶] Linux学习笔记(完整版)
    linux .deb文件安装
    我们就是查拉图斯特拉所说最后的人?!
    关于Mina
    讨厌SVN
    关于对Mina的一些看法
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7366080.html
Copyright © 2011-2022 走看看