cdoj 851 方老师与素数 bfs
方老师与素数
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
方老师最近很喜欢素数,他想玩一个游戏:
现在有两个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  | 
6  | 
Source
#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的更多相关文章
- CD0J/POJ 851/3126 方老师与素数/Prime Path BFS
		
Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9982 Accepted: 5724 Descri ...
 - cdoj 847 方老师与栈 火车进出战问题
		
//其实我是不想写这题的,但是这题让我想起了我年轻的时候 解法:直接模拟栈就好. //另外我年轻时候做的那题数据范围比较小,原理也不一样. //对于序列中的任何一个数其后面所有比它小的数应该是倒序的, ...
 - UESTC_方老师的分身 II CDOJ 915
		
方老师的分身 II Time Limit: 10000/5000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
 - UESTC_方老师分身 I CDOJ 914
		
方老师分身 I Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...
 - UESTC_方老师买表 CDOJ 885
		
老师买表 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Stat ...
 - UESTC 898 方老师和缘分 --二分图匹配+强连通分量
		
这题原来以为是某种匹配问题,后来好像说是强连通的问题. 做法:建图,每个方老师和它想要的缘分之间连一条有向边,然后,在给出的初始匹配中反向建边,即如果第i个方老师现在找到的是缘分u,则建边u-> ...
 - poj3126 筛素数+bfs
		
//Accepted 212 KB 16 ms //筛素数+bfs #include <cstdio> #include <cstring> #include <iost ...
 - UESTC_方老师和农场 2015 UESTC Training for Graph Theory<Problem L>
		
L - 方老师和农场 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...
 - UESTC - 900 方老师炸弹 —— 割点
		
题目链接:https://vjudge.net/problem/UESTC-900 方老师炸弹 Time Limit: 4000/2000MS (Java/Others) Memory L ...
 
随机推荐
- 人工智能深度学习Caffe框架介绍,优秀的深度学习架构
			
人工智能深度学习Caffe框架介绍,优秀的深度学习架构 在深度学习领域,Caffe框架是人们无法绕过的一座山.这不仅是因为它无论在结构.性能上,还是在代码质量上,都称得上一款十分出色的开源框架.更重要 ...
 - 学习Perl6: slice fastq file
			
需求: 只获取 ath 物种的 hairpin 序列 文件格式如下所示,以>打头的为 header,紧跟的为序列[AUCG]+ (Perl5 regexp 格式) #!/usr/bin/env ...
 - flex 右键连接
			
var menuItem:ContextMenuItem = new ContextMenuItem("技术支持:中科天宇软件有限公司", true, true); menuIte ...
 - Hive报错之java.lang.NoClassDefFoundError:  org/codehaus/jackson/JsonFactory
			
一.问题: 在使用Hive0.11进行select查询的时候报: hive,),site from zhifu; Total MapReduce jobs Launching Job out In o ...
 - 如何为github上的项目添加gif效果图
			
一.制作gif图片 如何制作可以参考: http://www.jianshu.com/p/27ec6375b8ab?utm_campaign=maleskine&utm_content=not ...
 - WMsg参数常量值
			
//WMsg参数常量值: //创建一个窗口 const int WM_CREATE = 0x01; //当一个窗口被破坏时发送 const int WM_DESTROY = 0x02; //移动一个窗 ...
 - java 数组基本操作(一维)
			
1.数组的声明: 数组类型 数组名[] 2.数组的表示方法 想使用数组中的值,可以使用索引来实现,数组是从0开始的,使用时格式为:数组名[i],比如 a[1],代表第二个值 在数组中要使用数组的长度 ...
 - Ubuntu中root用户和user用户的相互切换(转)
			
Ubuntu是最近很流行的一款Linux系统,因为Ubuntu默认是不启动root用户,现在介绍如何进入root的方法. (1)从user用户切换到root用户 不管是用图形模式登录Ubuntu,还是 ...
 - 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 ...
 - SlickGrid example 8:折线图
			
根据数据生成折线图,使用相当简单,也很容易. 主要方法: 数据: var vals = [12,32,5,67,5,43,76,32,5]; 生成折线图: $("testid&quo ...