方老师与素数

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)
Submit Status

方老师最近很喜欢素数,他想玩一个游戏:

现在有两个44位的素数nn和mm,你一次可以改变nn的一位数字,并且改变过后的新数字必须也是个素数,并且也不能有前导00。请问使nn变为mm最少需要多少步。

例如n=1033n=1033 m=8179m=8179

那么可行的变化是:

1033
1733
3733
3739
3779
8779
8179

Input

第一行有一个整数T(T≤100)T(T≤100),代表测试数据的组数。

对于每组数据,每行有两个44位素数N,MN,M(没有前导00)

Output

对于每一组数据,如果能够得到mm,输出最少的步数,否则输出Impossible

Sample input and output

Sample Input Sample Output
3
1033 8179
1373 8017
1033 1033
6
7
0

Source

2014 UESTC Training for Search Algorithm

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pi (4*atan(1.0))
#define eps 1e-14
const int N=2e5+,M=1e6+,inf=1e9+,mod=1e9+;
const ll INF=1e18+;
int p[];
int prime(int n)
{
if(n<=)
return ;
if(n==)
return ;
if(n%==)
return ;
int k, upperBound=n/;
for(k=; k<=upperBound; k+=)
{
upperBound=n/k;
if(n%k==)
return ;
}
return ;
}
int check(int x,int y)
{
int sum=;
while(x)
{
if(x%!=y%)sum++;
x/=;
y/=;
}
return sum;
}
int flag[];
struct is
{
int num;
int ans;
is(){}
is(int x,int y)
{
num=x;
ans=y;
}
};
int main()
{
int cnt=;
for(int i=;i<=;i++)
if(prime(i))
p[cnt++]=i;
int T;
scanf("%d",&T);
while(T--)
{
for(int i=;i<cnt;i++)
flag[p[i]]=;
int n,m;
scanf("%d%d",&n,&m);
flag[n]=;
queue<is>q;
q.push(is(n,));
int out=inf;
while(!q.empty())
{
is v=q.front();
q.pop();
if(v.num==m)
{
out=v.ans;
break;
}
for(int i=;i<cnt;i++)
{
if(!flag[p[i]]&&check(v.num,p[i])==)
{
flag[p[i]]=;
q.push(is(p[i],v.ans+));
}
}
}
if(out!=inf)
printf("%d\n",out);
else
printf("Impossible\n");
}
return ;
}

cdoj 851 方老师与素数 bfs的更多相关文章

  1. CD0J/POJ 851/3126 方老师与素数/Prime Path BFS

    Prime Path Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9982   Accepted: 5724 Descri ...

  2. cdoj 847 方老师与栈 火车进出战问题

    //其实我是不想写这题的,但是这题让我想起了我年轻的时候 解法:直接模拟栈就好. //另外我年轻时候做的那题数据范围比较小,原理也不一样. //对于序列中的任何一个数其后面所有比它小的数应该是倒序的, ...

  3. UESTC_方老师的分身 II CDOJ 915

    方老师的分身 II Time Limit: 10000/5000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

  4. UESTC_方老师分身 I CDOJ 914

    方老师分身 I Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit S ...

  5. UESTC_方老师买表 CDOJ 885

    老师买表 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Stat ...

  6. UESTC 898 方老师和缘分 --二分图匹配+强连通分量

    这题原来以为是某种匹配问题,后来好像说是强连通的问题. 做法:建图,每个方老师和它想要的缘分之间连一条有向边,然后,在给出的初始匹配中反向建边,即如果第i个方老师现在找到的是缘分u,则建边u-> ...

  7. poj3126 筛素数+bfs

    //Accepted 212 KB 16 ms //筛素数+bfs #include <cstdio> #include <cstring> #include <iost ...

  8. UESTC_方老师和农场 2015 UESTC Training for Graph Theory<Problem L>

    L - 方老师和农场 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submi ...

  9. UESTC - 900 方老师炸弹 —— 割点

    题目链接:https://vjudge.net/problem/UESTC-900   方老师炸弹 Time Limit: 4000/2000MS (Java/Others)     Memory L ...

随机推荐

  1. 人工智能深度学习Caffe框架介绍,优秀的深度学习架构

    人工智能深度学习Caffe框架介绍,优秀的深度学习架构 在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要 ...

  2. 学习Perl6: slice fastq file

    需求: 只获取 ath 物种的 hairpin 序列 文件格式如下所示,以>打头的为 header,紧跟的为序列[AUCG]+ (Perl5 regexp 格式) #!/usr/bin/env ...

  3. flex 右键连接

    var menuItem:ContextMenuItem = new ContextMenuItem("技术支持:中科天宇软件有限公司", true, true); menuIte ...

  4. Hive报错之java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonFactory

    一.问题: 在使用Hive0.11进行select查询的时候报: hive,),site from zhifu; Total MapReduce jobs Launching Job out In o ...

  5. 如何为github上的项目添加gif效果图

    一.制作gif图片 如何制作可以参考: http://www.jianshu.com/p/27ec6375b8ab?utm_campaign=maleskine&utm_content=not ...

  6. WMsg参数常量值

    //WMsg参数常量值: //创建一个窗口 const int WM_CREATE = 0x01; //当一个窗口被破坏时发送 const int WM_DESTROY = 0x02; //移动一个窗 ...

  7. java 数组基本操作(一维)

    1.数组的声明: 数组类型  数组名[] 2.数组的表示方法 想使用数组中的值,可以使用索引来实现,数组是从0开始的,使用时格式为:数组名[i],比如 a[1],代表第二个值 在数组中要使用数组的长度 ...

  8. Ubuntu中root用户和user用户的相互切换(转)

    Ubuntu是最近很流行的一款Linux系统,因为Ubuntu默认是不启动root用户,现在介绍如何进入root的方法. (1)从user用户切换到root用户 不管是用图形模式登录Ubuntu,还是 ...

  9. SDUT 2409:The Best Seat in ACM Contest

    The Best Seat in ACM Contest Time Limit: 1000MS Memory limit: 65536K 题目描述 Cainiao is a university st ...

  10. SlickGrid example 8:折线图

    根据数据生成折线图,使用相当简单,也很容易.     主要方法: 数据: var vals = [12,32,5,67,5,43,76,32,5]; 生成折线图: $("testid&quo ...