八连测之一fateice-string

来源:互联网 发布:硕鼠youtube下载器mac 编辑:程序博客网 时间:2024/06/16 19:48

Aldnoah

——火星上超古代文明留下的能量源,承认初代火星移民雷伊·雷加利亚博士(即后来的薇瑟帝国初代皇帝)为正统继承者,启动因子融入皇族的遗传因子中,只有皇族天生具有Aldnoah的启动能力。可以把Aldnoah看成是有认主能力的特殊矿产。在火星骑士的扬陆城中,安置有Aldnoah的启动装置。

题目描述

两天前,被授予启动能力的斯雷因·特洛耶特伯爵准备对启动装置进行加密,以防有人趁其不备破坏装置。

他将这个任务交给了他的心腹哈库莱特。忠实的哈库莱特认为,只需要输入密码就能解锁的加密装置实在是太不安全了,所以他决定用一个特别的加密装置来对Aldnoah启动装置进行保护。

他精心设计了这样一套加密装置:

该装置会给定解密者两个字符串s,t,其中s只包含小写字母以及*,t只包含小写字母。解密者可以进行任意多次操作,每次选择s中的一个*,将它修改为任意多个(可以是0个)它的前一个字符。询问是否能将s修改为t。

聪明的哈库莱特当然不会只给予解密者一组数据啦,所以解密时会有多组数据出现,并且每组数据只有在规定时间内答对才能够继续解密下一组数据。

今天他制作好了加密装置交给了斯雷因·特洛耶特伯爵,斯雷因准备先进行测试过后再将它安装在启动装置上。他随机制造了几组测试数据输入装置,然后让哈库莱特进行解密。哈库莱特会怎么做呢?

输入输出格式

输入格式:

第一行一个整数T表示数据组数。

每组数据两行,第一行一个字符串s,第二行一个字符串t。

输出格式:

每组数据输出一行,如果能将s修改为t,输出Yes,否则输出No。

输入输出样例

输入样例#1:
2a*aaaaa*ab
输出样例#1:
YesNo


















说明

对于20%的数据,|s|,|t|<=7。

对于60%的数据,|s|,|t|<=300。

对于100%的数据,T<=100,|s|,|t|<=30000。


题目大概讲的就是:给一个T(数据组数),两个字符串,让我们判断能否将第一个字符串扩展成第二个字符串。

弄清大意之后,附上一篇丑陋的代码~(Pascal)

var  t,i,j,i1,j1,flag:longint;bo:boolean;  std,ch:array[1..30010]of char;begin  readln(t);  repeat    i:=1; while not eoln do begin read(ch[i]); inc(i); end;    readln;    j:=1; while not eoln do begin read(std[j]); inc(j); end;    readln;      for i1 :=1 to i-2 do begin       if ch[i1]<>std[i1] then begin writeln('No'); break; end       else begin       bo:=true;         for  j1:= i-2 to j-2 do            if std[j1]<>std[j1+1] then begin bo:=false; break; end;         if bo then writeln('Yes') else writeln('No');       end;     end;    dec(t);  until t=0;end.


原创粉丝点击