2013金山西山居创意游戏程序挑战赛——初赛(1) A 魔法串
2013-05-17 21:03
351 查看
http://acm.hdu.edu.cn/showproblem.php?pid=4545
魔法串
小明和他的好朋友小西在玩一个新的游戏,由小西给出一个由小写字母构成的字符串,小明给出另一个比小西更长的字符串,也由小写字母组成,如果能通过魔法转换使小明的串和小西的变成同一个,那么他们两个人都会很开心。这里魔法指的是小明的串可以任意删掉某个字符,或者把某些字符对照字符变化表变化。如:
小西的串是 abba;
小明的串是 addba;
字符变化表 d b (表示d能转换成b)。
那么小明可以通过删掉第一个d,然后将第二个d转换成b将串变成abba。
现在请你帮忙判断:他们能不能通过魔法转换使两个人的串变成一样呢?
思路:相信这道题啃了不少人,题目不难,但是题目描述很容易让人“想歪”,注意这里的转换只能转换一次,即就算a能转换成b,b能转换成c,但是并不是说a能转换成c,很多人肯定是认为可以由a->b->c所以求了依次传递闭包吧,然后就WA了,包括我。。。
浓情这点题目就是个水题了,就是对于每一位能匹配就匹配,不能就丢弃,最后看是否能匹配成功即可。
代码如下:
魔法串
小明和他的好朋友小西在玩一个新的游戏,由小西给出一个由小写字母构成的字符串,小明给出另一个比小西更长的字符串,也由小写字母组成,如果能通过魔法转换使小明的串和小西的变成同一个,那么他们两个人都会很开心。这里魔法指的是小明的串可以任意删掉某个字符,或者把某些字符对照字符变化表变化。如:
小西的串是 abba;
小明的串是 addba;
字符变化表 d b (表示d能转换成b)。
那么小明可以通过删掉第一个d,然后将第二个d转换成b将串变成abba。
现在请你帮忙判断:他们能不能通过魔法转换使两个人的串变成一样呢?
思路:相信这道题啃了不少人,题目不难,但是题目描述很容易让人“想歪”,注意这里的转换只能转换一次,即就算a能转换成b,b能转换成c,但是并不是说a能转换成c,很多人肯定是认为可以由a->b->c所以求了依次传递闭包吧,然后就WA了,包括我。。。
浓情这点题目就是个水题了,就是对于每一位能匹配就匹配,不能就丢弃,最后看是否能匹配成功即可。
代码如下:
#include <iostream> #include <string.h> #include <stdio.h> #include <algorithm> #define maxn 100010 using namespace std; int map[30][30]; int main() { // freopen("dd.txt","r",stdin); char s1[1010],s2[1010]; int ncase,time=0; scanf("%d",&ncase); while(ncase--) { scanf("%s%s",s1,s2); int l1=strlen(s1),l2=strlen(s2); int q; scanf("%d",&q); char t1[2],t2[2]; memset(map,0,sizeof(map)); while(q--) { scanf("%s%s",t1,t2); map[t1[0]-'a'][t2[0]-'a']=1; } int i=0,j=0,tru=0; while(i<l1&&j<l2) { if(s1[i]==s2[j]||map[s2[j]-'a'][s1[i]-'a']) { i++; } j++; } if(i>=l1) printf("Case #%d: happy\n",++time); else printf("Case #%d: unhappy\n",++time); } return 0; }
相关文章推荐
- hdu 4545 魔法串 2013金山西山居创意游戏程序挑战赛——初赛(1)
- 2013金山西山居创意游戏程序挑战赛——初赛(1) A 魔法串
- 2013金山西山居创意游戏程序挑战赛——初赛(1) 魔法串
- 2013金山西山居创意游戏程序挑战赛——初赛(2) B M斐波那契数 (hdu 4549 )
- 分子函数2013金山西山居创意游戏程序挑战赛——初赛(4)
- 2013金山西山居创意游戏程序挑战赛——初赛(3)生日猜猜猜
- 2013金山西山居创意游戏程序挑战赛——初赛(2) C 卡片游戏 (hdu 4550 )
- 2013金山西山居创意游戏程序挑战赛——初赛(2)M斐波那契数列
- 2013金山西山居创意游戏程序挑战赛——初赛(1)
- 2013金山西山居创意游戏程序挑战赛——初赛(2)hdu 4548 4549 4550
- 2013金山西山居创意游戏程序挑战赛——初赛(2) B M斐波那契数 (hdu 4549 )
- 2013金山西山居创意游戏程序挑战赛——初赛(2) A 美素数(hdu 4548)
- 2013金山西山居创意游戏程序挑战赛——初赛(3) 1001 生日猜猜猜 hdu 4551
- 2013金山西山居创意游戏程序挑战赛——初赛(3)
- 2013金山西山居创意游戏程序挑战赛——初赛(1) C CD操作
- 2013金山西山居创意游戏程序挑战赛——初赛(3)生日猜猜猜
- 2013金山西山居创意游戏程序挑战赛——初赛(4)
- 2013金山西山居创意游戏程序挑战赛——初赛(1)题解
- HDU 4547 CD操作 2013金山西山居创意游戏程序挑战赛——初赛(1)
- 2013金山西山居创意游戏程序挑战赛——初赛(1)