题目背景

Aldnoah

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

题目描述

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

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

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

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

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

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

输入输出格式

输入格式:

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

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

输出格式:

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

输入输出样例

输入样例#1:

2
a*
aaaa
a*
ab
输出样例#1:

Yes
No

说明

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

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

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

分析:这道题能拿多少分在于你枚举什么.如果你枚举每个*赋值多少个字母,那么就有20分,如果你枚举两个串,那么就有60分,如果你枚举一个串,看看另外一个串是否符合要求就是满分.

因为每个*只对同一字母有影响,所以把每一段字母相同的连同*分成一段,如果第二个字符串第i段有x个字母,那么第一个字符串中第i段也应该有x个字母,如果里面有*号那么可以少于x个字母,否则就必须等于x个字母,否则匹配不成功,扫一遍就可以了.

多组数据一定要初始化!本来A掉的结果忘了初始化爆0了QAQ.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; int T;
char s1[], s2[];
int len1, len2, cur, num;
bool flag = false; bool pipei(int x, char biaozhun)
{
int res = ;
bool can = false;
while (s1[cur] != biaozhun && cur <= len1)
{
if (cur > len1)
return false;
if (s1[cur] == '*')
can = ;
else
res++;
cur++;
}
if (res < x && can)
return true;
if (res < x && !can)
return false;
if (res == x)
return true;
if (res > x)
return false;
} int main()
{
scanf("%d", &T);
while (T--)
{
num = ;
flag = ;
memset(s1, , sizeof(s1));
memset(s2, , sizeof(s2));
scanf("%s", s1 + );
scanf("%s", s2 + );
len1 = strlen(s1 + );
cur = ;
len2 = strlen(s2 + );
while (s1[cur] == '*' && cur <= len1)
cur++;
if (cur > len1)
{
printf("No\n");
continue;
}
if (s1[cur] != s2[])
{
printf("No\n");
continue;
}
for (int i = ; i <= len2; i++)
{
num++;
if (s2[i] != s2[i + ])
{
if (!pipei(num, s2[i + ]))
{
flag = ;
break;
}
num = ;
}
}
if (flag)
printf("No\n");
else
printf("Yes\n");
} return ;
}

noip模拟赛 fateice-string的更多相关文章

  1. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  2. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  3. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  4. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  5. CH Round #52 - Thinking Bear #1 (NOIP模拟赛)

    A.拆地毯 题目:http://www.contesthunter.org/contest/CH%20Round%20%2352%20-%20Thinking%20Bear%20%231%20(NOI ...

  6. CH Round #55 - Streaming #6 (NOIP模拟赛day2)

    A.九九归一 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2355%20-%20Streaming%20%236%20(NOIP模拟赛day2)/九九归一 题 ...

  7. CH Round #54 - Streaming #5 (NOIP模拟赛Day1)

    A.珠 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2354%20-%20Streaming%20%235%20(NOIP模拟赛Day1)/珠 题解:sb题, ...

  8. 【noip模拟赛5】细菌 状压dp

    [noip模拟赛5]细菌   描述 近期,农场出现了D(1<=D<=15)种细菌.John要从他的 N(1<=N<=1,000)头奶牛中尽可能多地选些产奶.但是如果选中的奶牛携 ...

  9. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对   描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们 ...

  10. NOIP模拟赛-2018.11.6

    NOIP模拟赛 今天想着反正高一高二都要考试,那么干脆跟着高二考吧,因为高二的比赛更有技术含量(我自己带的键盘放在这里). 今天考了一套英文题?发现阅读理解还是有一些困难的. T1:有$n$个点,$m ...

随机推荐

  1. NodeJs函数式编程

    虽然标题是NodeJS函数式编程,但实际上NodeJS 是一个框架,不是一种语言,其采用的语言是 JavaScript.而JavaScript是一种典型的多范式编程语言,算不上是函数式语言,但它有函数 ...

  2. PCB genesis方槽加内角槽孔实现方法

    一.为什么方槽孔加内角孔 如下图,客户来的方槽或Slot槽有内角尺寸要求,通常直接钻一个Slot槽孔内角是不能满足客户要求的,这时我们做CAM的需采用小钻刀进行处理.加内角孔或内角槽的方式进行处理了. ...

  3. P3379最近公共祖先(LCA)

    题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先. 输入输出格式 输入格式: 第一行包含三个正整数N.M.S,分别表示树的结点个数.询问的个数和树根结点的序号. 接下来N-1行每 ...

  4. [App Store Connect帮助]二、 添加、编辑和删除用户(5)创建一个沙盒测试员帐户

    如果您的 App 使用了 App 内购买项目或 Apple Pay,您可以在 App Store Connect 中创建沙盒测试员帐户,以便您向用户提供该 App 前,可以使用该帐户在测试环境中运行您 ...

  5. Netty编解码技术和UDP实现

    背景 作为网络传输框架,免不了传输对象,对象在传输之前就要序列化,这个序列化的过程就是编码过程.接收到编码后的数据就需要解码,还原传输的数据. 编解码技术就是java序列化技术,序列化的目的有两个,一 ...

  6. 用python语言写一个简单的计算器

    假如我们有这样一个式子: 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2 ...

  7. html5——网络状态

    我们可以通过window.onLine来检测,用户当前的网络状况,返回一个布尔值 window.addEventListener("online",function(){ aler ...

  8. SQL基本操作——HAVING

    HAVING:在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用. 我们拥有下面这个 "Orders" 表: O_Id OrderDate Or ...

  9. CSS动画:旋转卡片效果

    <!DOCTYPE html> <html> <head> <title>demo</title> </head> <bo ...

  10. java_servlet执行流程和生命周期