【NOIP2002】【codevs 1099】字串变换
来源:互联网 发布:淘宝皇冠号多少钱 编辑:程序博客网 时间:2024/06/08 07:09
1099 字串变换 2002年NOIP全国联赛提高组
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 黄金 Gold
题解
题目描述 Description
已知有两个字串 A
A1
A2
规则的含义为:在 A$中的子串 A1
例如:A
变换规则为:
‘abc’->‘xu’ ‘ud’->‘y’ ‘y’->‘yz’
则此时,A
‘abcd’->‘xud’->‘xy’->‘xyz’
共进行了三次变换,使得 A
输入描述 Input Description
输入格式如下:
A
A1
A2
… … /
所有字符串长度的上限为 20。
输出描述 Output Description
若在 10 步(包含 10步)以内能将 A
样例输入 Sample Input
abcd xyz
abc xu
ud y
y yz
样例输出 Sample Output
3
数据范围及提示 Data Size & Hint
hehe
并没有写双向搜索之类的东西
感谢强大的STL
compare 比较
replace 替换
就每次暴力看是不是相同 相同就换 顺便记个已经换了多少次
注意判环 所以要>10就退出
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <stack>#include <map>#include <queue>using namespace std;const int MAXN = 205;int cnt = 0,ans = 0;map <string,bool> used;string mm[MAXN][2];//输入们 struct edge{ string s; int step;};//当前串 变化步数 queue < edge > q;bool dms(string s){ q.push((edge){mm[0][0],0}); while(!q.empty()){ edge u = q.front();q.pop(); if(u.s == mm[0][1]) {ans = u.step;return true;} int len = u.s.length(); for(int i = 0; i < len; i ++) for(int j = 1; j <= cnt; j ++){ edge w = u; if(!u.s.compare(i,mm[j][0].length(),mm[j][0])){ w.s.replace(i,mm[j][0].length(),mm[j][1]),w.step ++; if(used[w.s]) continue; if(w.step <= 10) q.push(w); used[w.s] = true; } } } return false;}int main(){ cin >> mm[cnt][0] >> mm[cnt][1],cnt ++;//起点和终点 while(cin >> mm[cnt][0] >> mm[cnt][1]) cnt ++; if(dms(mm[cnt][0])) printf("%d\n",ans); else puts("NO ANSWER!");//注意输出!!!!!!!! return 0;}
阅读全文
0 0
- 【NOIP2002】【codevs 1099】字串变换
- 【codevs 1099】字串变换
- 【NOIP2002】字串变换 -宽搜
- NOIP2002 字串变换
- CodeVS 1099 字串变换 题解
- noip2002字串变换 2008.11.5
- 洛谷P1032&NOIP2002 字串变换
- codevs 1099_字串变换_bfs
- 【codevs】p1099 字串变换
- 双向BFS—>NOIP2002 字串变换
- 【NOIP2002】字串变换 CODE[VS] 1039
- 洛谷 P1032 [NOIP2002 T2] 字串变换
- 【洛谷1032 】【CJOJ1711】【NOIP2002】字串变换
- 洛谷 1032 [NOIP2002] 字串变换 双向bfs
- noip2002 字串变换 (双向宽搜,交替扩展)
- wikioi 1099 字串变换
- 1099 字串变换
- 【NOIP2002提高组T2】字串变换-双向BFS或迭代加深搜索
- 响应式设计
- N皇后问题 (递归)
- 传参模态框使用
- 跨平台思维导图软件,应该选哪一个?
- 数据库建表总结
- 【NOIP2002】【codevs 1099】字串变换
- python里使用正则表达式的词组匹配功能
- 15个深度学习尚未攻克的难题
- Missing Marketing Icon
- C语言的操作符
- 利用免费软件备份博客并制作成CHM
- JS中的forEach()和map()相似与不同
- 解决ScrollView中嵌套Listview,Listview显示不完整和滑动冲突的问题
- NOIP提高组 2012 同余方程