个人训练赛第十八场----问题 I: From S To T

黑色的飞鸟掠过天空,我站在城中,看时间燃成灰烬,哗哗作响......

题目描述

You are given three strings s, t and p consisting of lowercase Latin letters. You may perform any number (possibly, zero) operations on these strings.
During each operation you choose any character from p, erase it from p and insert it into string s (you may insert this character anywhere you want: in the beginning of s, in the end or between any two consecutive characters).
For example, if p is aba, and s is de, then the following outcomes are possible (the character we erase from p and insert into s is highlighted):
aba → ba, de → ade;
aba → ba, de → dae;
aba → ba, de → dea;
aba → aa, de → bde;
aba → aa, de → dbe;
aba → aa, de → deb;
aba → ab, de → ade;
aba → ab, de → dae;
aba → ab, de → dea;
Your goal is to perform several (maybe zero) operations so that s becomes equal to t. Please determine whether it is possible.
Note that you have to answer q independent queries.

 

输入

The first line contains one integer q (1≤q≤100) — the number of queries. Each query is represented by three consecutive lines.
The first line of each query contains the string s (1≤|s|≤100) consisting of lowercase Latin letters.
The second line of each query contains the string t (1≤|t|≤100) consisting of lowercase Latin letters.
The third line of each query contains the string p (1≤|p|≤100) consisting of lowercase Latin letters.

 

输出

For each query print YES if it is possible to make s equal to t, and NO otherwise.
 

 

样例输入

复制样例数据

4
ab
acxb
cax
a
aaaa
aaabbcc
a
aaaa
aabbcc
ab
baaa
aaaaa

样例输出

YES
YES
NO
NO

 

提示

In the first test case there is the following sequence of operation:
s= ab, t= acxb, p= cax;
s= acb, t= acxb, p= ax;
s= acxb, t= acxb, p= a.
In the second test case there is the following sequence of operation:
s= a, t= aaaa, p= aaabbcc;
s= aa, t= aaaa, p= aabbcc;
s= aaa, t= aaaa, p= abbcc;
s= aaaa, t= aaaa, p= bbcc.

思路代码中很清晰了?

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
string s,t,p;
int sp[26],ct[26];
int pd()
{
    int i,j,ls,lt,lp;
    memset(sp,0,sizeof(sp));
    memset(ct,0,sizeof(ct));
    ls=s.length();
    lt=t.length();
    lp=p.length();
    for(i=0; i>s>>t>>p;
        if(pd()==1)
            printf("YES\n");
        else
            printf("NO\n");
    }
    return 0;
}

 

你可能感兴趣的:(ACM,石油大学)