Codeforces Round #256 (Div. 2/B)/Codeforces448B_Suffix Structures(字符串处理)

Codeforces Round #256 (Div. 2/B)/Codeforces448B_Suffix Structures(字符串处理)

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

解题报告
四种情况相应以下四组数据。
给两字符串,推断第一个字符串是怎么变到第二个字符串。
automaton 去掉随意字符后成功转换
array 改变随意两字符后成功转换

再者是两个都有和两个都没有

#include <iostream>
#include <cstdio>
#include <cstring>
#include <stdlib.h>
#include <algorithm>
#include <cmath>
using namespace std;

int main()
{
    char str1[110],str2[110];
    int h1[100],h2[100],i,j;
    while(cin>>str1>>str2)
    {
        memset(h1,0,sizeof(h1));
        j=0;
        int l1=strlen(str1),l2=strlen(str2);
        for(i=0; i<l2,j<l1;)
        {
            if(str2[i]==str1[j])
            {
                j++;
                i++;
            }
            else j++;
        }
        if(i==l2)
            cout<<"automaton"<<endl;
        else
        {
            for(i=0; i<l1; i++)
            {
                h1[str1[i]-'a']++;
            }
            for(i=0; i<l2; i++)
            {
                if(h1[str2[i]-'a'])
                    h1[str2[i]-'a']--;
                else break;
            }
            if(i==l2&&l1==l2)
            {
                cout<<"array"<<endl;
            }
            else if(i==l2&&l1!=l2)
                cout<<"both"<<endl;
            else cout<<"need tree"<<endl;

        }
    }
}

Suffix Structures
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Bizon the Champion isn’t just a bison. He also is a favorite of the “Bizons” team.

At a competition the “Bizons” got the following problem: “You are given two distinct words (strings of English letters), s and t. You need to transform word s into word t“. The task looked simple to the guys because they know the suffix data structures well. Bizon Senior loves suffix automaton. By applying it once to a string, he can remove from this string any single character. Bizon Middle knows suffix array well. By applying it once to a string, he can swap any two characters of this string. The guys do not know anything about the suffix tree, but it can help them do much more.

Bizon the Champion wonders whether the “Bizons” can solve the problem. Perhaps, the solution do not require both data structures. Find out whether the guys can solve the problem and if they can, how do they do it? Can they solve it either only with use of suffix automaton or only with use of suffix array or they need both structures? Note that any structure may be used an unlimited number of times, the structures may be used in any order.

Input

The first line contains a non-empty word s. The second line contains a non-empty word t. Words s and t are different. Each word consists only of lowercase English letters. Each word contains at most 100 letters.

Output

In the single line print the answer to the problem. Print “need tree” (without the quotes) if word s cannot be transformed into word teven with use of both suffix array and suffix automaton. Print “automaton” (without the quotes) if you need only the suffix automaton to solve the problem. Print “array” (without the quotes) if you need only the suffix array to solve the problem. Print “both” (without the quotes), if you need both data structures to solve the problem.

It’s guaranteed that if you can solve the problem only with use of suffix array, then it is impossible to solve it only with use of suffix automaton. This is also true for suffix automaton.

Sample test(s)
input
automaton
tomat

output
automaton

input
array
arary

output
array

input
both
hot

output
both

input
need
tree

output
need tree

Note

In the third sample you can act like that: first transform “both” into “oth” by removing the first character using the suffix automaton and then make two swaps of the string using the suffix array and get “hot“.


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118800.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CSDN各产品线月度NPS分析报告新鲜出炉【2021年7月】[通俗易懂]

    CSDN各产品线月度NPS分析报告新鲜出炉【2021年7月】[通俗易懂]不知道各位用户大大有没有注意到,最近,咱们CSDN网站很多页面增加了这个功能模块:你愿意向朋友推荐xxx吗?哈哈,聪明的小伙伴们可能已经知道了,它其实就是个简单的满意度调查,学名NPS。那到底什么是NPS呢?且听C菌我慢慢道来。一、什么是NPS?NPS是针对企业良性收益与真实增长所提出的用户忠诚度概念,它是目前最流行的顾客忠诚度分析指标。根据用户的推荐意愿,将用户分为三类:推荐者、被动者、贬损者,推荐者与贬损者是对企业实际的产品口碑有影响的用户,这两部分用户在用户总数中所占百分比之差,就是.

    2022年5月5日
    55
  • 1、ZigBee 开发教程之基础篇—ZigBee简介和学习方法

    1、ZigBee学习笔记之基础篇—ZigBee简介和学习方法文章目录1、ZigBee学习笔记之基础篇—ZigBee简介和学习方法1、前言2、ZigBee简介3、ZigBee和IEEE802.15.4的关系4、ZigBee的特点5、ZigBee无线网络通信信道分析6、ZigBee的网络拓扑模型7、ZigBee的应用范围8、本人所使用的开发板的硬件资料9、快速掌握ZigBee的学习方法1、前言​ ZigBee学习笔记系列是基于笔者需要使用ZigBee模组进行项目开发而写的学习笔记。

    2022年4月8日
    184
  • vs2008中向项目(以C#为例)添加要求管理员权限的属性(为了兼容vista的UAC)

    vs2008中向项目(以C#为例)添加要求管理员权限的属性(为了兼容vista的UAC)

    2021年8月23日
    93
  • mysql 联合索引生效的条件、索引失效的条件

    mysql 联合索引生效的条件、索引失效的条件

    2022年2月17日
    59
  • Mysql事务隔离级别_数据库默认的事务隔离级别

    Mysql事务隔离级别_数据库默认的事务隔离级别前言提到事务,你肯定不会陌生,最经典的例子就是转账,甲转账给乙100块,当乙的账户中到账100块的时候,甲的账户就应该减去100块,事务可以有效的做到这一点。在MySQL中,事务支持实在引擎层实现的,MySQL是一个支持多引擎的系统,但并不是所有引擎都支持事务。比如MySQL原生的MyISAM引擎就不支持事务,这也是MyISAM被取代的原因之一。隔离性事务的四大特性AC…

    2022年10月14日
    3
  • pycharm如何远程连接服务器_py服务端软件

    pycharm如何远程连接服务器_py服务端软件通过pycharm远程连接服务器首先确定你连接服务器的方式软件准备验证软件是否安装成功pycharm远程连接服务器上传自己的project到Ubuntu上传完以后,开始给自己的项目配置服务器的python解释器如何使用路由器,开启外网映射通过路由器的底部的网址进入管理员页面选择应用管理进入虚拟服务器在虚拟服务器中添加需要把内网映射到外网的IP地址查看自己映射出去的外网IP地址至此大功告成!!!您可以通过外网来访问您学校的服务器啦!首先确定你连接服务器的方式一般连接服务器需要服务器的ip地址,IP地址分为

    2022年8月28日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号