[NOIP2002]字串变换题解

题目链接:[NOIP2002]字串变换 (nowcoder.com)

题意:给你一个初始字符串和一个目标字符串,还有一些变换规则,问你用这些变换规则最小要多少步可以将初始字符串变为目标字符串。

看体面感觉没什么,而且数据范围也不大,我直接写了一个bfs,交了,洛谷上过了(P1032 [NOIP2002 提高组] 字串变换 - 洛谷 ),但是牛客没过,t了,这就很离谱了,我应该说牛客数据很顶还是说洛谷数据太水了呢,而且洛谷上这题还是还是绿题(?

思路:既然单向搜索t了,那就改成双向搜索,题目中说十步之内,所以我们正向搜5步,反向搜5步,如果反向搜索的时候遇到了正向搜索的时候搜过的,就更新最小值,但是我的这个代码复用性太差了,改成一个可能会好很多,不过清晰也是真的,便于理解嘛,写的时候写完一个改一改另一个就写好了.

还有一个小地方我第一次写的时候没注意:我们用一个规则去搜索的时候,它不一定只对应一个位置,所以我们一定要把一个状态下,某一个变换规则的所有可能位置全部搜索一遍,不然就会缺状态

#include <bits/stdc&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuhudaduizhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值