POJ 3126 Prime Path 广度优先搜索 难度:0
http://poj.org/problem?id=3126
搜索的时候注意
1:首位不能有0
2:可以暂时有没有出现在目标数中的数字
#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;
const int maxn=1e4+5;
const int inf=0x7fffffff;
bool prim[maxn];
void judge(){
prim[2]=true;
for(int i=3;i<maxn;i+=2)prim[i]=true;
for(int i=3;i<maxn;i+=2){
if(prim[i]){
for(int j=3;j*i<maxn;j+=2){
prim[j*i]=false;
}
}
}
}
int dp[maxn],s,e;
queue<int> que;
const int base[4]={
10,100,1000,10000
};
int change(int sta,int ind,int num){
int sub=sta%(base[ind]);
if(ind>0)sub-=sub%base[ind-1];
sta-=sub;
sta+=num*base[ind]/10;
return sta;
}
void cal(){
for(int i=0;i<maxn;i++)dp[i]=inf;
while(!que.empty())que.pop();
dp[s]=0;
que.push(s);
while(!que.empty()){
int f=que.front();que.pop();
if(f==e)return ;
for(int i=0;i<4;i++){
for(int j=0;j<10;j++){
if(i==3&&j==0)continue;
int to=change(f,i,j);
if(!prim[to]||dp[to]!=inf)continue;
dp[to]=dp[f]+1;
que.push(to);
}
}
}
}
int main(){
int T;
scanf("%d",&T);
judge();
while(T--){
scanf("%d%d",&s,&e);
cal();
printf("%d\n",dp[e]);
}
}
POJ 3126 Prime Path 广度优先搜索 难度:0的更多相关文章
- poj 3126 Prime Path(搜索专题)
Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20237 Accepted: 11282 Desc ...
- POJ 3126 Prime Path BFS搜索
题意:就是找最短的四位数素数路径 分析:然后BFS随便搜一下,复杂度最多是所有的四位素数的个数 #include<cstdio> #include<algorithm> #in ...
- 双向广搜 POJ 3126 Prime Path
POJ 3126 Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16204 Accepted ...
- POJ 3126 Prime Path(素数路径)
POJ 3126 Prime Path(素数路径) Time Limit: 1000MS Memory Limit: 65536K Description - 题目描述 The minister ...
- BFS POJ 3126 Prime Path
题目传送门 /* 题意:从一个数到另外一个数,每次改变一个数字,且每次是素数 BFS:先预处理1000到9999的素数,简单BFS一下.我没输出Impossible都AC,数据有点弱 */ /**** ...
- poj 3126 Prime Path bfs
题目链接:http://poj.org/problem?id=3126 Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submi ...
- POJ - 3126 - Prime Path(BFS)
Prime Path POJ - 3126 题意: 给出两个四位素数 a , b.然后从a开始,每次可以改变四位中的一位数字,变成 c,c 可以接着变,直到变成b为止.要求 c 必须是素数.求变换次数 ...
- POJ 3126 Prime Path【从一个素数变为另一个素数的最少步数/BFS】
Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 26475 Accepted: 14555 Descript ...
- POJ 3126 Prime Path(BFS 数字处理)
意甲冠军 给你两个4位质数a, b 每次你可以改变a个位数,但仍然需要素数的变化 乞讨a有多少次的能力,至少修改成b 基础的bfs 注意数的处理即可了 出队一个数 然后入队全部能够由这个素 ...
随机推荐
- Django中URL的解析和反查
add by zhj: 如果想用reverse(namespace1:namespace2:...:namespaceN:name)反查url(注意:用reverse('polls:index')方法 ...
- Java-idea-FindBugs、PMD和CheckStyle对比
一.对比 工具 目的 检查项 备注 FindBugs 检查.class 基于Bug Patterns概念,查找javabytecode (.class文件)中的潜在bug 主要检查bytecode中的 ...
- Spring源码解析(二)BeanDefinition的Resource定位
IOC容器的初始化过程主要包括BeanDefinition的Resource定位.载入和注册.在实际项目中我们基本上操作的都是ApplicationContex的实现,我们比较熟悉的ClassPath ...
- Docker Compose 入门使用指南
Compose is a tool for defining and running multi-container Docker applications. With Compose, you us ...
- WebDriver API 实例详解(四)
三十一.使用页面的文字内容识别和处理新弹出的浏览器窗口 被测试网页的HTML源码: <html> <head> <meta charset="UTF-8&quo ...
- python tesseract-ocr 安装包下载地址
https://github.com/UB-Mannheim/tesseract/wiki 如图:可以选合适的版本进行下载
- 20165207 学习基础与C语言基础调查反馈
文章阅读体会与学习调查反馈 文章阅读体会 我在娄老师的文章里了解到了"做中学"的概念.并且通过娄老师慷慨地分享的相关经验,我对于它有了进一步的理解以及体会.以下是我收获以及我的感想 ...
- iOS开发之开发者申请
一.对于真机调试,首先要在苹果网站上注册APP ID,以及购买iPhone Develop Program(iDP) 开发者授权,99美元.然后要创建证书请求CSR,创建步骤如下: 1.Mac O ...
- 前端学习笔记之CSS过渡模块
阅读目录 一 伪类选择器复习 二 过渡模块的基本使用 三 控制过渡的速度transition-timing-function 四 过渡模块连写 一 伪类选择器复习 注意点: #1 a标签的伪类选择器可 ...
- GOEXIF读取和写入EXIF信息
最新版本的gexif,直接基于gdi+实现了exif信息的读取和写入,代码更清晰. /* * File: gexif.h * Purpose: cpp EXIF reader * 3/2/2017 & ...