博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ-3126-Prime Path
阅读量:6071 次
发布时间:2019-06-20

本文共 1265 字,大约阅读时间需要 4 分钟。

链接:https://vjudge.net/problem/POJ-3126

题意:

给两个四位数的素数a,b。每次可以改变a的一个值使其成为一个新的四位数素数。

求从a-b的最小操作次数

思路:

最大10000的素数打表,BFS即可。

代码:

#include 
#include
#include
using namespace std;typedef long long LL;const int MAXN = 10000;int Primes[MAXN];int vis[MAXN];int vis_Primes[MAXN];int Max;struct Node{ int _value; int _step; Node(int value,int step) { _value = value; _step = step; }};void init(){ //168 Primes[168-MAXN] > 999 int pos = 0; memset(vis,0,sizeof(vis)); for (int i = 2;i
< pos&&i*Primes[j] < MAXN;j++) { vis[i*Primes[j]] = 1; if (i%Primes[j] == 0) break; } } Max = pos;}int main(){ init(); int t,a,b; scanf("%d",&t); while (t--) { memset(vis_Primes,0,sizeof(vis_Primes)); scanf("%d%d",&a,&b); queue
que; que.push(Node(a,0)); vis_Primes[a] = 1; while (!que.empty()) { int now_value = que.front()._value; int now_step = que.front()._step; if (now_value == b) break; for (int i = 168;i

  

转载于:https://www.cnblogs.com/YDDDD/p/10268980.html

你可能感兴趣的文章
C#数据采集类
查看>>
quicksort
查看>>
检验函数运行时间
查看>>
【BZOJ2019】nim
查看>>
Oracle临时表空间满了的解决办法
查看>>
四部曲
查看>>
LINUX内核调试过程
查看>>
【HDOJ】3553 Just a String
查看>>
Java 集合深入理解(7):ArrayList
查看>>
2019年春季学期第四周作业
查看>>
linux环境配置
查看>>
ASP.NET MVC中从前台页面视图(View)传递数据到后台控制器(Controller)方式
查看>>
lintcode:next permutation下一个排列
查看>>
python 递归
查看>>
一个想法(续二):换个角度思考如何解决IT企业招聘难的问题!
查看>>
tomcat指定配置文件路径方法
查看>>
linux下查看各硬件型号
查看>>
对象合成复用之策略模式
查看>>
epoll的lt和et模式的实验
查看>>
Flux OOM实例
查看>>