//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的更多相关文章

  1. Prime Path素数筛与BFS动态规划

    埃拉托斯特尼筛法(sieve of Eratosthenes ) 是古希腊数学家埃拉托斯特尼发明的计算素数的方法.对于求解不大于n的所有素数,我们先找出sqrt(n)内的所有素数p1到pk,其中k = ...

  2. Prime Path(POJ - 3126)【BFS+筛素数】

    Prime Path(POJ - 3126) 题目链接 算法 BFS+筛素数打表 1.题目主要就是给定你两个四位数的质数a,b,让你计算从a变到b共最小需要多少步.要求每次只能变1位,并且变1位后仍然 ...

  3. 【板子】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 ...

  4. CF449C Jzzhu and Apples (筛素数 数论?

    Codeforces Round #257 (Div. 1) C Codeforces Round #257 (Div. 1) E CF450E C. Jzzhu and Apples time li ...

  5. 洛谷P3383 【模板】线性筛素数

    P3383 [模板]线性筛素数 256通过 579提交 题目提供者HansBug 标签 难度普及- 提交  讨论  题解 最新讨论 Too many or Too few lines 样例解释有问题 ...

  6. 洛谷 P3383 【模板】线性筛素数

    P3383 [模板]线性筛素数 题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范 ...

  7. POJ2689-Prime Distance-区间筛素数

    最近改自己的错误代码改到要上天,心累. 这是迄今为止写的最心累的博客. Prime Distance Time Limit: 1000MS   Memory Limit: 65536K Total S ...

  8. 线性筛素数和理解 洛谷P3383

    题目链接:https://www.luogu.org/problemnew/show/P3383 线性筛法筛素数的特点是每一个数字只被遍历一次,即时间复杂度为O(n),所以说他是线性的,并且所有的非素 ...

  9. ACM-ICPC 2018 南京赛区网络预赛 J题Sum(线性筛素数)

    题目链接:https://nanti.jisuanke.com/t/30999 参考自博客:https://kuangbin.github.io/2018/09/01/2018-ACM-ICPC-Na ...

随机推荐

  1. graph-tool 练习

    如何使用graph-tool模块,如何导入?如何使用graph,使用其算法? 如何使用Boost Graph库,安装,测试? 1 创建和操纵图 如何创建空图? g = Graph() 如何精准的创建有 ...

  2. VC++源文件编码

    目录 第1章源代码文件    1 1.1 研究思路    1 1.2 实验结果    3 1.3 #pragma setlocale    4 1.4 /source-charset    5 1.5 ...

  3. eclipse 删除 tomcat8 重新添加的问题

    今天手贱,把Eclipse里的tomcat删掉了,然后发现后面就不能重建了,很蛋疼啊...而且今天也发现eclipse里的tomcat启动时会把本地原来conf目录下的配置比如:tomcat-user ...

  4. ogre入门笔记

    ogre作为一款开源的非商业渲染引擎, 除去效率不谈, 其设计结构十分优雅, 值得游戏从业者拥有和学习.本篇笔记基于ogre v1.9. 1.代码模块 ogre的核心代码分布如下图: ogreMain ...

  5. Bootstrap标签

    Bootstrap是Twitter推出的一个用于前端开发的开源工具包.用外链加载的方式可以将Bootstrap链接进来 常用方式: <link rel="stylesheet" ...

  6. 笔记6:winfrom连接sql server 进行数据交换

    今天的作业是用winfrom窗体做一个留言板,如图: 要求和数据库有查询和添加功能.下拉框里的值是直接获取数据库中的值 一.连接数据库,获取表中数据 //创建一个存数据的表 DataTable tab ...

  7. Python中一些内建函数及os等模块的用法

          len(obj)                   # 求长度:obj可以是str.list等对象    split(str, num)          # str-分割符,默认空格: ...

  8. 初学java之常用组件

    import javax.swing.*; import java.awt.*; class Win extends JFrame { JTextField mytext; // 设置一个文本区 JB ...

  9. ARM中的总线

    ARM中的总线用于不同部件之间的通信.有两种不同类型的设备连接到总线:ARM处理器,它是总线的主设备,拥有对总线的仲裁权,可以通过同一总线主动发起数据传输请求:外围器件,是总线的从设备,在总线上是被动 ...

  10. C/C++源代码到可执行程序的过程详解

    编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序. 源代码-- ...