poj3126 筛素数+bfs
//Accepted 212 KB 16 ms
//筛素数+bfs
#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
using namespace std;
;
;
bool pri[imax_n];
bool vis[imax_n];
void prime()
{
;i<imax_n;i++)
{
for (int j=i*i;j<imax_n;j+=i)
{
pri[j]=;
}
}
pri[]=pri[]=;
}
queue<int > q,step;
int ans;
void bfs(int s,int e)
{
while (!q.empty()) q.pop();
while (!step.empty()) step.pop();
memset(vis,false,sizeof(vis));
ans=inf;
q.push(s);
vis[s]=true;
step.push();
while (!q.empty())
{
int x=q.front();
q.pop();
int temp_step=step.front();
step.pop();
if (x==e)
{
ans=temp_step;
return ;
}
;
;i<=;i++)
{
;
&& !vis[nx])
{
q.push(nx);
step.push(temp_step+);
vis[nx]=true;
}
}
t=(x%)%+x/*;
;i<=;i++)
{
;
&& !vis[nx])
{
q.push(nx);
step.push(temp_step+);
vis[nx]=true;
}
}
t=x/*+x%%;
;i<=;i++)
{
;
&& !vis[nx])
{
q.push(nx);
step.push(temp_step+);
vis[nx]=true;
}
}
t=x/*;
;i<=;i+=)
{
int nx=t+i;
&& !vis[nx])
{
q.push(nx);
step.push(temp_step+);
vis[nx]=true;
}
}
}
}
int main()
{
prime();
int T;
scanf("%d",&T);
while (T--)
{
int a,b;
scanf("%d%d",&a,&b);
bfs(a,b);
if (ans==inf)
printf("Impossible\n");
else
printf("%d\n",ans);
}
;
}
poj3126 筛素数+bfs的更多相关文章
- Prime Path素数筛与BFS动态规划
埃拉托斯特尼筛法(sieve of Eratosthenes ) 是古希腊数学家埃拉托斯特尼发明的计算素数的方法.对于求解不大于n的所有素数,我们先找出sqrt(n)内的所有素数p1到pk,其中k = ...
- Prime Path(POJ - 3126)【BFS+筛素数】
Prime Path(POJ - 3126) 题目链接 算法 BFS+筛素数打表 1.题目主要就是给定你两个四位数的质数a,b,让你计算从a变到b共最小需要多少步.要求每次只能变1位,并且变1位后仍然 ...
- 【板子】gcd、exgcd、乘法逆元、快速幂、快速乘、筛素数、快速求逆元、组合数
1.gcd int gcd(int a,int b){ return b?gcd(b,a%b):a; } 2.扩展gcd )extend great common divisor ll exgcd(l ...
- CF449C Jzzhu and Apples (筛素数 数论?
Codeforces Round #257 (Div. 1) C Codeforces Round #257 (Div. 1) E CF450E C. Jzzhu and Apples time li ...
- 洛谷P3383 【模板】线性筛素数
P3383 [模板]线性筛素数 256通过 579提交 题目提供者HansBug 标签 难度普及- 提交 讨论 题解 最新讨论 Too many or Too few lines 样例解释有问题 ...
- 洛谷 P3383 【模板】线性筛素数
P3383 [模板]线性筛素数 题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范 ...
- POJ2689-Prime Distance-区间筛素数
最近改自己的错误代码改到要上天,心累. 这是迄今为止写的最心累的博客. Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total S ...
- 线性筛素数和理解 洛谷P3383
题目链接:https://www.luogu.org/problemnew/show/P3383 线性筛法筛素数的特点是每一个数字只被遍历一次,即时间复杂度为O(n),所以说他是线性的,并且所有的非素 ...
- ACM-ICPC 2018 南京赛区网络预赛 J题Sum(线性筛素数)
题目链接:https://nanti.jisuanke.com/t/30999 参考自博客:https://kuangbin.github.io/2018/09/01/2018-ACM-ICPC-Na ...
随机推荐
- Nodejs环境变量
PATH,就是那个意思,没有特殊含义. NODE_PATH,将node_modules作为全局模块,多个安装目录用;分开.这样node在加载模块时首先会到项目目录下的node_modules目录加载相 ...
- Laravel 分页详解
Laravel分页很简单,但功能又很强大噢! 首先在控制器的方法中使用paginate(页面显示条数)方法,传入页面显示的条数 然后在模板页面使用方法render()来生成html元素 appends ...
- VS2012给同一个解决方案添加多个项目
1.选择文件->添加->新建项目或现有项目 2.接下来在解决方案资源管理器中我们会发现解决方ConsoleApplication1中有两个项目,这里一个是类库项目ClassLibrary1 ...
- Python--关于set
慕课网<Pyrhon入门>学习笔记 1.set 特性 set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像. 可以将s ...
- 5个开发人员不应该错过的最好跨平台PHP编辑器
IDE(集成开发环境)或换句话说PHP编辑器是开发人员在构建移动或Web应用必不可少的工具.在这篇文章中,我们将讨论有关PHP编辑器并分享5个最好的跨平台的PHP编辑器. 1. NetBeans Ne ...
- js-- 一些题目
1. ~~3.14~~3.14=-((~3.14)+1)=-(-(3.14+1)+1)=-(-(3+1)+1)=-(-4+1) =-(-3)=3 按位非(NOT)(~)操作数的负值减1. 2. var ...
- hdu-----2491Priest John's Busiest Day(2008 北京现场赛G)
Priest John's Busiest Day Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- LINUX 硬盘命令
1. 查看硬盘情况fdisk -l 每个Disk 为一个硬盘2. 挂在新硬盘fdisk /dev/sdb #硬盘地址Command (m for help):n #新建立分区Command actio ...
- 原生JavaScript实现mouseenter
mouseenter和Mouseleave都是jquery的事件,JavaScript的mouseover和mouseout每个子元素都会触发,从子元素移到父元素也会触发,用起来不很方便,而且触发的太 ...
- 根据采购/销售订单创建STO/SO
FUNCTION Z_SD_CREATE_DN. *"-------------------------------------------------------------------- ...