


Codeforces Round #256 (Div. 2) B. Suffix Structures(模拟)_html/css_WEB-ITnose
题目链接:http://codeforces.com/contest/448/problem/B
----------------------------------------------------------------------------------------------------------------------------------------------------------
欢迎光临天资小屋:http://user.qzone.qq.com/593830943/main
----------------------------------------------------------------------------------------------------------------------------------------------------------
B. 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
automatontomat
output
automaton
input
arrayarary
output
array
input
bothhot
output
both
input
needtree
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".
代码如下:
#include <iostream>#include <algorithm>using namespace std;#define N 47#define M 100000#include <cstring>int a[N],b[N];char s[M+17], t[M+17];void init(){ memset(a,0,sizeof(a)); memset(b,0,sizeof(b));}int main(){ int i, j; while(cin >> s) { init(); cin>>t; int lens = strlen(s); int lent = strlen(t); for(i = 0; i < lens; i++) { a[s[i]-'a']++; } for(i = 0; i < lent; i++) { b[t[i]-'a']++; } int flag = 0; if(lens < lent) { flag = 1; } for(i = 0; i < 26; i++) { if(a[i] < b[i]) { flag = 1; break; } } if(flag == 1) { cout<<"need tree"<<endl; continue; } if(lens == lent) { cout<<"array"<<endl; continue; } int p = 0, j = 0; for(i = 0; i < lent; i++) { while(t[i]!=s[j] && j < lens) { j++; } if(j >= lens) //表示不存在不交换s子串的顺序能组成t的情况 { p = 1; break; } j++; } if(p == 1) { cout<<"both"<<endl; continue; } cout<<"automaton"<<endl; } return 0;}

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



In PHP, round means "rounding" and is a built-in function that converts floating point numbers into integers. This function can round floating point numbers and return an integer value of type float. The syntax is "round(number, precision,mode);".

Machine learning makes computer graphics (CG) simulations more realistic! The method is called Neural Flow Maps (NFM), which can accurately simulate smoke with four vortices: more complex ones can also be easily realized: you know, in this era of AI applications flying all over the sky, CG physics simulation is still It is the world of traditional numerical algorithms. △NFM simulates "leapfrog". Although the application of neural networks in CG can create dazzling visual effects, it cannot strictly and robustly describe physical properties. △NFM simulates "ink droplets" It is precisely for this reason that physical simulation based on neural networks is still in the proof of concept stage, and the effects generated are far from SOTA. In order to solve this complex problem,

Transformer has become a popular choice for various machine learning tasks and has achieved great results, so how else can it be used? Researchers with great imagination actually want to use it to design programmable computers! The authors of this paper, titled "Looped Transformers as Programmable Computers", are from Princeton University and the University of Wisconsin, and aim to explore how to use Transformers to implement general-purpose computers. Specifically, the authors propose a framework for using transformer networks as general-purpose computers by programming them with specific weights and placing them in loops. in this framework

The round() function is a very useful function in the PHP number formatting library, which can round floating point numbers to a specified number of decimal places. However, since PHP's division operation may suffer from infinite decimals or loss of precision, rounding of the divisor is also necessary. Next, we will explain in detail how to use PHP's round() function to divide and round.

How to use the ROUND function in MySQL to intercept the number of decimal places. In MySQL, you can use the ROUND function to intercept the number of decimal places. The ROUND function rounds a number to a specified number of decimal places. The following will introduce you to the use of ROUND function in detail and provide code examples. Syntax: ROUND(X,D)X represents the number to be rounded, and D represents the number of decimal places to be retained. Example of using the ROUND function to intercept the number of decimal places: Suppose there is a table named produc

Recently, Samsung announced the acquisition of Oxford Semantic Technologies, a British knowledge graph startup, to enhance its local AI capabilities and provide users with a more personalized AI experience. The company's main product is the AI engine RDFox, which uses knowledge graph technology to store information as an interconnected network. The way it processes data is similar to how humans think: acquiring, memorizing, recalling and reasoning about knowledge. This technology will enhance the device's understanding of the products or services used by users, thereby enabling rapid information retrieval and recommendations. It is understood that Oxford Semantic Technologies was founded in 2017 by three Oxford University professors: Ian Horrocks, Boris Mortick and Bernardo Cuenca.

PHP and WebDriver extensions: How to simulate users' scrolling and dragging behaviors. With the continuous development of network applications, more and more websites and applications need to simulate users' scrolling and dragging behaviors. This is very important for testers and developers to ensure that websites and applications work properly in various scenarios. In this article, we will introduce how to use PHP and WebDriver extensions to simulate user scrolling and dragging behavior. WebDriver is a tool for automating browsers,

How to use GitLab for API testing and simulation Introduction: In the process of software development, API (Application Programming Interface, application programming interface) testing and simulation is a very important step. It can help developers verify the correctness and performance of the API, and can Discover potential problems ahead of time. GitLab is a very popular code hosting platform that implements functions such as version control and team collaboration. This article will introduce how to use Git
