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题????) ...
随机推荐
- [Android]彻底去除Google AdMob广告
应用中包含广告是能够理解的,但经常造成用户误点,或者广告切换时造成下载流量,就有点让人不舒服了. 以下就以Google AdMob广告为例,看怎样彻底去除他. 先分析一下Google AdMob的工作 ...
- SVM vs. Softmax
http://cs231n.github.io/linear-classify/
- php在不同平台下路径分隔符不同的解决办法
在看phpamf时看到一个常量“DIRECTORY_SEPARATOR”,最后发现是一个全局的常量,用来定义路径分隔符的 主要解决在windows和linux下路径分隔符不同的造成代码不通用的问题,在 ...
- 洛谷 P3674 小清新人渣的本愿
想看题目的戳我. 我刚开始觉得这道题目好难. 直到我从Awson大佬那儿了解到有一个叫做bitset的STL,这道题目就很容易被解开了. 想知道这个神奇的bitset的戳我. 这个题目一看就感觉是莫队 ...
- 为什么Git 比 SVN 好
原文链接:http://www.worldhello.net/2012/04/12/why-git-is-better-than-svn.html Why Git is better than SVN ...
- 9.Django里的数据同步migrations命令
一个关键的目录: 目录名:migrations 作用:用来存放通过makemigrations命令生成的数据库脚本,这里的内容一般不要手动去改 规定:app目录下必须要有migrations目录且目录 ...
- LeetCode:用HashMap解决问题
LeetCode:用HashMap解决问题 Find Anagram Mappings class Solution { public int[] anagramMappings(int[] A, i ...
- 财经世界(5)国际货币基金组织,世界银行,国际清算银行(BIS)与美联储
(1)国际货币基金组织 *国际货币基金组织(International Monetary Fund,简称:IMF)是根据1944年7月在布雷顿森林会议签订的<国际货币基金协定>,于1945 ...
- 【leetcode刷题笔记】Unique Binary Search Trees
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...
- ios9 3dtouch 博客
http://my.oschina.net/u/2340880/blog/511509#OSC_h3_3