POJ3126Prime Path(BFS)
#include"cstdio"
#include"queue"
#include"cstring"
using namespace std;
const int MAXN=;
typedef pair<int,int> P;
int vis[MAXN];
int s,e;
bool prime(int x)
{
for(int i=;i*i<=x;i++)
{
if(x%i==)
{
return false;
}
}
return true;
} void bfs()
{
queue<P> que;
que.push(P(,s));
vis[s]=;
while(!que.empty())
{
P now = que.front();que.pop();
if(now.second==e)
{
printf("%d\n",now.first);
return ;
} int p=now.second%;
int pp=(now.second%)/;
for(int i=;i<=;i+=) //枚举个位
{
int next=(now.second/)*+i;
if(!vis[next]&&next!=now.second&&prime(next))
{
vis[next]=;
que.push(P(now.first+,next));
}
} for(int i=;i<=;i++) //枚举十位
{
int next=(now.second/)*+i*+p;
if(!vis[next]&&next!=now.second&&prime(next))
{
vis[next]=;
que.push(P(now.first+,next));
} } for(int i=;i<=;i++) //枚举百位
{
int next=(now.second/)*+i*+pp*+p;
if(!vis[next]&&next!=now.second&&prime(next))
{
vis[next]=;
que.push(P(now.first+,next));
}
} for(int i=;i<=;i++) //枚举千位
{
int next=i*+now.second%;
if(!vis[next]&&next!=now.second&&prime(next))
{
vis[next]=;
que.push(P(now.first+,next));
}
}
}
printf("Impossible\n");
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&s,&e);
memset(vis,,sizeof(vis));
bfs();
}
return ;
}
POJ3126Prime Path(BFS)的更多相关文章
- POJ-3126-Prime Path(BFS)
Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 27852 Accepted: 15204 Desc ...
- poj3126Prime Path (BFS+素数筛)
素数筛:需要一个数组进行标记 最小的素数2,所有是2的倍数的数都是合数,对合数进行标记,然后找大于2的第一个非标记的数(肯定是素数),将其倍数进行标记,如此反复,若是找n以内的所有素数,只需要对[2, ...
- POJ2126——Prime Path(BFS)
Prime Path DescriptionThe ministers of the cabinet were quite upset by the message from the Chief of ...
- POJ3126 Prime Path (bfs+素数判断)
POJ3126 Prime Path 一开始想通过终点值双向查找,从最高位开始依次递减或递增,每次找到最接近终点值的素数,后来发现这样找,即使找到,也可能不是最短路径, 而且代码实现起来特别麻烦,后来 ...
- [HDU 1973]--Prime Path(BFS,素数表)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1973 Prime Path Time Limit: 5000/1000 MS (Java/Others ...
- POJ 3126 Prime Path(BFS 数字处理)
意甲冠军 给你两个4位质数a, b 每次你可以改变a个位数,但仍然需要素数的变化 乞讨a有多少次的能力,至少修改成b 基础的bfs 注意数的处理即可了 出队一个数 然后入队全部能够由这个素 ...
- poj 3126 Prime Path bfs
题目链接:http://poj.org/problem?id=3126 Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submi ...
- poj3126--Prime Path(广搜)
Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11751 Accepted: 6673 Descr ...
- codeforces 1072D Minimum path bfs+剪枝 好题
题目传送门 题目大意: 给出一幅n*n的字符,从1,1位置走到n,n,会得到一个字符串,你有k次机会改变某一个字符(变成a),求字典序最小的路径. 题解: (先吐槽一句,cf 标签是dfs题????) ...
随机推荐
- iOS11 push控制器tabbar上移问题
解决方法 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated { // 如果有大 ...
- vue 计算属性和监听器
一.计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div> {{ message.split('').rev ...
- The given 'driver' ] is unknown, Doctrine currently supports only the follo wing drivers: pdo_mysql, pdo_sqlite, pdo_pgsql, pdo_oci, oci8, ibm_db2, pdo
[Doctrine\DBAL\DBALException] The given 'driver' ] ...
- 【转载】Spring介绍之二
Spring框架,是进行对象管理,对象关联,解耦的一个中间层框架.SSH(Struts+Spring+Hibernate)三大Spring在中间就起着一个承上启下的作用.好,首先我们先来看一下Spri ...
- 如何写PHP规范注释
所有的文档标记都是在每一行的 * 后面以@开头.如果在一段话的中间出来@的标记,这个标记将会被当做普通内容而被忽略掉. @access 该标记用于指明关键字的存取权限:private.p ...
- 每天一个Linux命令(27)gzip命令
zip命令用来压缩文件.gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名. (1)用法: 用法: gzip [选项参数][-s <压缩字尾字符 ...
- Redis的管理
一.redis持久化 redis是内存数据库,一切的数据都是存储到内存中的,我们知道,当服务器意外关机,那么在内存中的数据都将丢失,但是redis为我们提供持久化功能,这样就能把数据保存到硬盘上.re ...
- css3条纹边框效果
在线演示 本地下载
- Eclipse安装Propedit插件、SVN插件、js插件
1.在线安装Propedit 打开Eclipse的在线安装界面,点击Add Name: propedit Location:http://propedit.sourceforge.jp/eclipse ...
- BZOJ 1562 [NOI2009]变换序列:二分图匹配
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1562 题意: 给定n,定义D(x,y) = min(|x-y|, n-|x-y|),然后 ...