摘要: 题意:给出两个四位数的素数,按如下规则变换,使得将第一位数变换成第二位数的花费最少,输出最少值,否则输出0。 每次只能变换四位数的其中一位数,使得变换后的数也为素数,每次变换都需要1英镑(即使换上的数是以前被换下的)。思路:若素数a可以按上述规则转化为b,则可以看做a、b直接有一条边。显然,从初始值到目标值的路径上的边数即为花费的 数目,这样一来,就相当于求最短路径。由于题目只要求最小花费数,所以不需要存储有向图。 用BFS搜索,每次枚举当前值x所能变换得到的值y,若y满足条件,将y以及从初始值达到当前y值所需要的次数压入队列。 只要当从队列取出的数值等于目标值,此时的花费即... 阅读全文
posted @ 2013-10-11 20:30 辰曦~文若 阅读(265) 评论(0) 推荐(0)