免费下ppt课件的网站,天工网工程新希望官网,动画制作设计,移动互联网开发是干什么的正题
题目链接:http://noip.ybtoj.com.cn/contest/86/problem/2 题目大意
给两个字符串#xff0c;第一个中的∗*∗号可以替换为若干个#xff08;可以为0个#xff09;相同的它的前一个字符。求能否构成第二个字符串。 解题思路
把所有的∗*∗号去掉然后在有的∗*∗号的…正题
题目链接:http://noip.ybtoj.com.cn/contest/86/problem/2 题目大意
给两个字符串第一个中的∗*∗号可以替换为若干个可以为0个相同的它的前一个字符。求能否构成第二个字符串。 解题思路
把所有的∗*∗号去掉然后在有的∗*∗号的连续相同字符后面加上一个∗*∗。然后就可以暴力判断了。 codecodecode
#includecstdio
#includecstring
#includealgorithm
using namespace std;
const int N3e410;
int T,n,m;
char s[N],t[N];
int main()
{freopen(strinq.in,r,stdin);freopen(strinq.out,w,stdout);scanf(%d,T);while(T--){scanf(%s,s1);nstrlen(s1);scanf(%s,t1);mstrlen(t1);int last0,cnt0,tail0;bool flag0;for(int i1;in;i){if(last(s[i]last||s[i]*))cnt(s[i]last); else if(s[i]*)lasts[i-1],cnt0;else if(last){for(int j1;jcnt;j)s[tail]last;last0;s[tail]*;s[tail]s[i];}else s[tail]s[i];}if(last){for(int j1;jcnt;j)s[tail]last;s[tail]*;}ntail;tail1;for(int i1;in;i){if(s[i]!*tailm){flag1;break;}else if(s[i]t[tail])tail;else if(s[i]*){while(s[i]*t[tail]s[i-1])tail;}else{flag1;break;}}if(flag||tailm)printf(No\n);else printf(Yes\n);}
}