题目链接:http://poj.org/problem?id=3126
题意
给出一次操作的定义,将一个四位数的一位转换成另外一位数字(不含前导0)。同时给出两位素数,求中间需要进过多少次这样的操作才能够从开始的哪一位素数达到后面的那一位素数,而且必须满足中间进过的数都是素数.
题解
- 使用BFS搜索路径,同时记录搜索路径的长度
- 用结构体将一个数和搜索到这个数是已经走过的步数绑定起来
- 数字用string表示,便于进行操作,只需对对应的字符进行操作即可
代码
1 | const int maxn=10005; |