poj3126
来源:互联网 发布:ubuntu安装自动分区 编辑:程序博客网 时间:2024/06/05 18:37
涉及算法:bfs
题目大意:将一个四位的素数a变成四位的素数b需要多少次改变?注意,每次只能改变某一位的数字,且改变后的数也是素数。
题目分析:40入口的bfs
代码如下:
题目大意:将一个四位的素数a变成四位的素数b需要多少次改变?注意,每次只能改变某一位的数字,且改变后的数也是素数。
题目分析:40入口的bfs
代码如下:
import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class Main_3126 {static int a,b;static Queue<Integer> q;static int[] used;//used[i]=1:表示数i已经出现过了static int[] step;//step[i]:变成i最少需要的步数public static void main(String[] args) {Scanner in = new Scanner(System.in);int n=in.nextInt();while(n-->0){q=new LinkedList<Integer>();used=new int[10000];step=new int[10000];a=Integer.parseInt(in.next());b=Integer.parseInt(in.next());System.out.println(bfs());}}static int bfs(){int head=0,next=0;q.offer(a);used[a]=1;step[a]=0;while(!q.isEmpty()){head=q.poll();for(int i=1;i<=9;i+=2)//改变个位{next=(head/10)*10+i;if(isPrime(next) && used[next]==0){q.offer(next);step[next]=step[head]+1;used[next]=1;if(next==b) return step[next];}}for(int i=0;i<=9;i++)//十位{next=(head/100)*100+head%10+i*10;if(isPrime(next) && used[next]==0){q.offer(next);step[next]=step[head]+1;used[next]=1;if(next==b) return step[next];}}for(int i=0;i<=9;i++)//百位{next=(head/1000)*1000+head%100+i*100;if(isPrime(next) && used[next]==0){q.offer(next);step[next]=step[head]+1;used[next]=1;if(next==b) return step[next];}}for(int i=1;i<=9;i++)//千位{next=head%1000+i*1000;if(isPrime(next) && used[next]==0){ q.offer(next);step[next]=step[head]+1;used[next]=1;if(next==b) return step[next];}}}return -1;}static boolean isPrime(int d)//判断d是否为素数{for(int i=2;i<=Math.sqrt(d);i++){if(d%i==0){return false;}}return true;}}
0 0
- poj3126
- POJ3126
- poj3126
- poj3126
- poj3126
- POJ3126
- poj3126
- poj3126
- poj3126
- poj3126
- poj3126
- poj3126
- poj3126
- POJ3126
- Poj3126
- poj3126
- poj3126
- POJ3126
- 如何才能长见识
- UITableView选择UITableViewStyleGrouped时 section的高度设置
- js 里map功能的实现
- 51nod1495 中国好区间 思维
- 大数据(十二) - Oozie
- poj3126
- eclipse项目迁移到android studio【转载】
- 38. Count and Say leetcode python 2016 new season
- 高斯模糊 毛玻璃 可以调节模糊度
- 网络加密解密原理(一)
- Nginx安装部署
- 【常用工具类】KeyBoardUtils 软键盘相关辅助类
- 从零开始搭建架构实施Android项目
- Linux下比find快N倍的文件查找命令