素数路(prime)

素数路(prime)

题目描述

已知一个四位的素数,要求每次修改其中的一位,并且要保证修改的结果还是一个素数,还不能出现前导零。你要找到一个修改数最少的方案,得到我们所需要的素数。
例如把1033变到8179,这里是一个最短的方案:
1033
1733
3733
3739
3779
8779
8179
修改了6次。

输入

1行,两个四位的素数(没有前导零),表示初始数和目标数。

输出

一个数,表示最少的操作次数。如果不可能,输出“Impossible”。

样例输入

1033 8179

样例输出

6
分析:bfs,预处理四位素数;
代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <climits>
#include <cstring>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <stack>
#include <vector>
#include <list>
#include <ext/rope>
#define rep(i,m,n) for(i=m;i<=n;i++)
#define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)
#define vi vector<int>
#define pii pair<int,int>
#define mod 1000000007
#define inf 0x3f3f3f3f
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ll long long
#define pi acos(-1.0)
const int maxn=1e5+10;
const int dis[4][2]={{0,1},{-1,0},{0,-1},{1,0}};
using namespace std;
using namespace __gnu_cxx;
ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);}
ll qpow(ll p,ll q){ll f=1;while(q){if(q&1)f=f*p;p=p*p;q>>=1;}return f;}
int n,m,all,a[maxn],vis[maxn];
bool sushu(int p)
{if(p<=1)return false;else if(p==2)return true;else if(p%2==0)return false;for(int i=3;i*i<=p;i+=2)if(p%i==0)return false;return true;
}
void dfs()
{queue<int>p;p.push(n);vis[n]=1;while(!p.empty()){int u=p.front(),v;p.pop();if(u==m)return;for(int i=0;i<=9;i++){v=u-u%10+i;if(!vis[v]&&a[v])p.push(v),vis[v]=vis[u]+1;}for(int i=0;i<=9;i++){v=u-u/10%10*10+i*10;if(!vis[v]&&a[v])p.push(v),vis[v]=vis[u]+1;}for(int i=0;i<=9;i++){v=u-u/100%10*100+i*100;if(!vis[v]&&a[v])p.push(v),vis[v]=vis[u]+1;}for(int i=0;i<=9;i++){v=u-u/1000*1000+i*1000;if(!vis[v]&&a[v])p.push(v),vis[v]=vis[u]+1;}}
}
int main()
{int i,j,k,t;scanf("%d%d",&n,&m);for(int i=1000;i<=9999;i++)if(sushu(i))a[i]=1;dfs();if(vis[m])printf("%d\n",vis[m]-1);else puts("Impossible");//system ("pause");return 0;
}
 

 

 

 

 

转载于:https://www.cnblogs.com/dyzll/p/5720246.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/457525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python多线程单核_002_Python多线程相当于单核多线程的论证

很多人都说python多线程是假的多线程!下面进行论证解释:一、我们先明确一个概念&#xff0c;全局解释器锁(GIL)Python代码的执行由Python虚拟机(解释器)来控制。Python在设计之初就考虑要在主循环中&#xff0c;同时只有一个线程在执行&#xff0c;就像单CPU的系统中运行多个进…

detail:JSON parse error - Expecting value: line 1 column 1 (char 0)

detail":"JSON parse error - Expecting value: line 1 column 1 (char 0) 在调用接口时返回400错误&#xff0c;详情是 {detail":"JSON parse error - Expecting value: line 1 column 1 (char 0)"}原因是传送数据的格式有问题&#xff0c;不要使用…

【IDEA 2016】intellij idea tomcat jsp 热部署

刚开始用IDEA&#xff0c;落伍的我&#xff0c;只是觉得IDEA好看。可以换界面。想法如此的low。 真是不太会用啊&#xff0c;弄好了tomcat。程序启动竟然改动一下就要重启&#xff0c;JSP页面也一样。 IDEA可以配置热部署&#xff0c;打开tomcat配置页面&#xff0c;将红框处&a…

C# where用法解析

where 子句用于指定类型约束&#xff0c;这些约束可以作为泛型声明中定义的类型参数的变量。1.接口约束。例如&#xff0c;可以声明一个泛型类 MyGenericClass&#xff0c;这样&#xff0c;类型参数 T 就可以实现 IComparable<T> 接口&#xff1a;public class MyGeneric…

ubuntu进入桌面自动启动脚本_在 Ubuntu 下开机自启动自己的 QT 程序而不启动 Ubuntu 的桌面...

1. /etc/profile 方式实现这个功能&#xff0c;要完成两步&#xff1a;1、系统设置-> 用户账户-> 点击我的账户-> 点击右上角的解锁-> 打开自动登录-> 点击右上角的锁定-> 退出系统设置2、在 /etc/profile 文件的开头添加执行 qt 程序的命令。如&#xff1a;…

Java obj与JSON互转(jackson)

JSON 解析 常见的json解析器&#xff1a; jsonlibGson(谷歌)fastjson(阿里)jackson(Spring内置) jackson 依赖jar包 jackson-annotations/jackson-core/jackson-databind/ 官网下载地址 1. Java对象转JSON 1.1 核心对象 ObjectMapper 1.2常用转换方法 writeValue(参…

如何制作一个简单的APP应用软件?

如今随着移动智能手机的普及&#xff0c;让APP的市场一片繁荣&#xff0c;现在市场上的APP数量数不胜数&#xff0c;对于APP开发的我们很多外行人也许认为&#xff0c;开发APP是不是特别难&#xff0c;是不是只有资历很高的程序员才能够完成这个任务&#xff0c;或者说要想开发…

I/O重定向

每个进程都至少有3个信息&#xff1a;“标准输入”stdin、“标准输出”stdout、和“标准出错”stderr。标准输入通常来自键盘&#xff0c;标准输出和标准错误输出通常被发往屏幕&#xff08;并不会保存在磁盘文件中&#xff09;。有些时候&#xff0c;需要从文件读取输入&#…

java 自动装拆箱

title: “java 自动装拆箱” tags: Java 将基本数据类型封装成对象的过程叫做装箱&#xff08;boxing&#xff09;&#xff0c;反之基本数据类型对应的包装类转换为基本数据类型的过程叫做拆箱&#xff08;unboxing&#xff09;; 基本数据类型与其他对象的区别 基本数据类型 …

设计模式11---组合模式(Composite Pattern)

一、组合模式定义 将对象组合成树形结构以表示“部分-整体”的层次结构&#xff0c;使得用户对单个对象和组合对象的使用具有一致性。Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compos…

Linux 多核下绑定硬件中断到不同 CPU(IRQ Affinity)

转载 - Linux 多核下绑定硬件中断到不同 CPU&#xff08;IRQ Affinity&#xff09; 作者 digoal 日期 2016-11-20 标签 Linux , IRQ , 中断 , CPU亲和 , 绑定中断处理CPU 背景 原文 http://www.vpsee.com/2010/07/load-balancing-with-irq-smp-affinity/ 原文 硬件中断发生频繁…

请列举你了解的分布式锁_这几种常见的“分布式锁”写法,搞懂再也不怕面试官,安排!...

什么是分布式锁&#xff1f;大家好&#xff0c;我是jack xu&#xff0c;今天跟大家聊一聊分布式锁。首先说下什么是分布式锁&#xff0c;当我们在进行下订单减库存&#xff0c;抢票&#xff0c;选课&#xff0c;抢红包这些业务场景时&#xff0c;如果在此处没有锁的控制&#x…

leetcode 268

等差数列求值 1 class Solution {2 public:3 int missingNumber(vector<int>& nums) {4 int nnums.size();5 int kn*(n1)/2;6 for(int i0;i<n;i)7 k-nums[i];8 return k;9 } 10 }; 转载于:https://www.cnblogs.…

301缓存重定向?301 Moved Permanently (from disk cache)

今天在写一个博客系统时&#xff0c;发现首页数据经常刷新不出来&#xff0c;甚至后端根本就没有接受到这个请求&#xff0c;以为是Ajax的问题&#xff0c;但通过抓包发现Ajax请求确实已经发出去了&#xff0c;但状态码是 301 Moved Permanently (from disk cache),301是永久重…

Firefox 50优化Electrolysis

Mozilla正式发布Firefox 50。最新的版本中提升了来自多个内容进程用户的用户体验&#xff0c;并修复了十几个高影响的安全漏洞。\\在Firefox最新版本的变更中&#xff0c;我们注意到了它对于Electrolysis的进一步改进。Electrolysis是Mozilla实现在后台进程中呈现和执行web相关…

ModuleNotFoundError: No module named '_ctypes' ERROR:Command errored out with exit status 1: python

Ubuntu下载 nginx 时报错&#xff1a; ERROR: Command errored out with exit status 1:command: /usr/local/bin/python3.7 -c import sys, setuptools, tokenize; sys.argv[0] ""/tmp/pip-install-7e0xdb36/uwsgi/setup.py""; __file__""/tmp…

python opc plc_PYthon简易OPC数据采集写入Access

利用hollias comm opcserver 与Python实现交互。代码如下&#xff1a;# -*- coding: utf-8 -*-from sys import *from getopt import *#from os import * 造成f open(test.txt, r) TypeError: an integer is required错误import signalimport sysimport osimport typesimport …

边工作边刷题:70天一遍leetcode: day 73

Read N Characters Given Read4 I/II 要点&#xff1a;这题的要点就是搞清楚几个变量的内在逻辑&#xff1a;只有buffer是整4 bytes的。而client要读的bytes&#xff08;需求&#xff09;和实际上disk上有的bytes&#xff08;供给&#xff09;都是不整的。所以&#xff0c; 循环…

javascript时间戳和日期字符串相互转换

1 <html xmlns"http://www.w3.org/1999/xhtml">2 <head>3 <meta http-equiv"Content-Type" content"text/html; charsetutf-8" />4 <script type"text/javascript">5 // 获取当前时间戳(以s为单位)6 var time…

wireshark 十六进制过滤_CTF流量分析之wireshark使用

01.基本介绍在CTF比赛中&#xff0c;对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供一个包含流量数据的pcap文件&#xff0c;参赛选手通过该文件筛选和过滤其中无关的流量信息&#xff0c;根据关键流量信息找出flag或者相关线索。pcap流量包的分析通常都是…