【题目链接】

https://www.luogu.org/problemnew/show/P1032

【算法】

广度优先搜索

用stl库里的map来判重

【代码】

#include<bits/stdc++.h>
using namespace std; int n;
string A,B;
string s1[],s2[];
map<string,bool> mp; inline bool bfs()
{
int i,pos;
queue< pair<string,int> > q;
pair<string,int> cur;
string tmp;
q.push(make_pair(A,));
while (!q.empty())
{
cur = q.front();
q.pop();
if (cur.second > ) return false;
if (cur.first == B)
{
printf("%d\n",cur.second);
return true;
}
for (i = ; i <= n; i++)
{
if (cur.first.find(s1[i]) == string :: npos) continue;
pos = cur.first.find(s1[i]);
while (true)
{
tmp = cur.first;
tmp.replace(pos,s1[i].length(),s2[i]);
if (!mp[tmp])
{
q.push(make_pair(tmp,cur.second+));
mp[tmp] = true;
}
if (cur.first.find(s1[i],pos+) == string :: npos) break;
pos = cur.first.find(s1[i],pos+);
}
}
}
} int main()
{ cin >> A >> B;
n = ;
while (cin >> s1[n] >> s2[n]) n++;
if (!bfs()) printf("NO ANSWER!\n"); return ; }

【NOIP 2002】 字串变换的更多相关文章

  1. [COGS 0065][NOIP 2002] 字串变换

    65. [NOIP2002] 字串变换 ★★   输入文件:string.in   输出文件:string.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 已知有两个字 ...

  2. 洛谷 P1032 [ NOIP 2002 ] 字串变换 —— 字符串+bfs

    题目:https://www.luogu.org/problemnew/show/P1032 字符串好复杂...先写了个 dfs ,RE一个点TLE一个点,不知该怎么改了... #include< ...

  3. 1099 字串变换 2002年NOIP全国联赛提高组

    1099 字串变换 2002年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 已知有 ...

  4. NOIP 2002 提高组 字串变换

    题目描述 已知有两个字串 A, B 及一组字串变换的规则(至多6个规则): A1 -> B1 A2 -> B2 规则的含义为:在 A$中的子串 A1 可以变换为 B1.A2 可以变换为 B ...

  5. 字串变换 (2002 年NOIP全国联赛提高组)

    一道看似非常水的题 大意 :将一个字串 经过几种变换规则变为给定的另一个子串 ,求最小操作数. code[vs] 传送门 洛谷传送门 已知有两个字串 A, B 及一组字串变换的规则(至多6个规则): ...

  6. 「NOIP2002」「Codevs1099」 字串变换(BFS

    1099 字串变换 2002年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold   题目描述 Description 已知有两个字串 $A$, ...

  7. Codevs 1099 字串变换

    1099 字串变换 2002年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 已知有 ...

  8. 【洛谷1032 】【CJOJ1711】【NOIP2002】字串变换

    ###题目描述 已知有两个字串 A, B 及一组字串变换的规则(至多6个规则): A1 -> B1 A2 -> B2 规则的含义为:在 A$中的子串 A1 可以变换为 B1.A2 可以变换 ...

  9. NOIP2002字串变换[BFS]

    题目描述 已知有两个字串 A$, B$ 及一组字串变换的规则(至多6个规则): A1$ -> B1$ A2$ -> B2$ 规则的含义为:在 A$中的子串 A1$ 可以变换为 B1$.A2 ...

  10. 字串变换(codevs 1099)

    题目描述 Description 已知有两个字串 A$, B$ 及一组字串变换的规则(至多6个规则): A1$ -> B1$ A2$ -> B2$ 规则的含义为:在 A$中的子串 A1$ ...

随机推荐

  1. 金立 M6 (GN8003) 解锁 BootLoader 进入第三方 recovery 刷机 ROOT

    首先下载好工具:http://url.cn/5EILbQn 备用连接 :http://pan.baidu.com/s/1c28j7k0 本篇教程教你如何傻瓜式解锁BootLoader并刷入recove ...

  2. python爬虫:爬取百度云盘资料,保存下载地址、链接标题、链接详情

    在网上看到的教程,但是我嫌弃那个教程写的乱(虽然最后显示我也没高明多少,哈哈),就随手写了一个 主要是嫌弃盘搜那些恶心的广告,这样直接下载下来,眼睛清爽多了. 用pyinstall 打包成EXE文件, ...

  3. ORA-03113 ---end-of-file on communication channel 解决方案记录

    ORALCE启动时报如下错误: ORA-03113: end-of-file on communication channel     解决方案如下: 1.查看orcle启动日志,确定具体是什么原因引 ...

  4. MVC 运行视图出错

    IIS服务器web核心没有安装造成的

  5. 使用脚本卸载.net framework for mac

    官方只提供了安装包,没提供卸载

  6. jquery相关常用的工具函数

    1.弹出提示框: function prompt(msg){ $("<div>" + msg + "</div>").css({ &qu ...

  7. Java接口和Java抽象类的认识

    在没有好好地研习面向对象设计的设计模式之前,我对Java接口和Java抽象类的认识还是很模糊,很不可理解. 刚学Java语言时,就很难理解为什么要有接口这个概念,虽说是可以实现所谓的多继承,可一个只有 ...

  8. 小程序组件 Vant Weapp 安装

    文件夹的名称必须是英文 第一步:npm init -y 第二步:npm i vant-weapp -S --production

  9. 防止split没有切割的变量报错

    var getSocketUrl = localStorage.getItem("socketUrl"); getSocketUrl = getSocketUrl &&am ...

  10. 55.TF/IDF算法

    主要知识点: TF/IDF算法介绍 查看es计算_source的过程及各词条的分数 查看一个document是如何被匹配到的         一.算法介绍 relevance score算法,简单来说 ...