poj3126】的更多相关文章

POJ3126 Prime Path 一开始想通过终点值双向查找,从最高位开始依次递减或递增,每次找到最接近终点值的素数,后来发现这样找,即使找到,也可能不是最短路径, 而且代码实现起来特别麻烦,后来搜了一下解题报告,才发现是bfs(). 想想也是,题目其实已经提示的很清楚了,求最短的路径,对于每一个数,每次可以把4位中的任意一位,  换成与该位不相同的0-9中的任意一位,对于迷宫类 bfs每次转移数为上下左右四个状态,而此题就相当于每次可以转移40个状态(其实最低位为偶数可以排除,不过题目数据…
AOJ0009 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0009 题意 求不大于n的素数个数. 思路 素数筛法可解,筛法过程中可顺便统计不大于n的素数个数. 另外这个题由于有多个测试数据,可预先求出题目所给数据范围的所有解. 素数筛法中我的写法里要注意数的范围,这个题中的i*i是可能超过int表示范围的,因而我提交了好几次都是RE,需要提前判断. 代码 #include <iostream> #include <c…
题目链接: https://vjudge.net/problem/POJ-3126 题目大意: 给两个四位数a,b 每次改变a中的一位而且改动之后的必须是素数,问最少改动几次可以到b?(永远达不到b就输出impossible) 思路: 素数打表更好直接判断,然后BFS,用力一点小技巧可以直接生成所有可到达的点 #include<iostream> #include<vector> #include<queue> #include<algorithm> #in…
//Accepted 212 KB 16 ms //筛素数+bfs #include <cstdio> #include <cstring> #include <iostream> #include <queue> using namespace std; ; ; bool pri[imax_n]; bool vis[imax_n]; void prime() { ;i<imax_n;i++) { for (int j=i*i;j<imax_n;…
http://poj.org/problem?id=3126 题目大意:给两个数四位数m, n, m的位数各个位改变一位0 —— 9使得改变后的数为素数, 问经过多少次变化使其等于n 如: 1033173337333739377987798179 分析:用字符串存m,n,这样改变各个位较方便 数组开大一点,开始数组开小了,结果就出错了 #include<stdio.h> #include<stdlib.h> #include<math.h> #include<qu…
题目链接. AC代码如下: #include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <string> #include <queue> #include <algorithm> #include <map> #include <ctype.h> using namespace std;…
题目链接:http://poj.org/problem?id=3126 题意:给两个四位数n,m,将n变成m需要多少步,要求每次只能改变n的某一位数,即改变后的数与改变前的数只有一位不同,且每次改变后的数都是素数. 分析:筛选素数+bfs,枚举每一位数字进行修改,修改后还是素数的进入队列,循环出队入队,最后改变一步.两步.三步...变成的素数散落开来,如同一棵树,遇到与要改变目标相同的数时返回步数即可. #include <cstdio> #include <cstring> #i…
题意:简单的说就是:有一个人门牌号是一个四位数的整数,并且还是一个素数,现在他想要换成另外一个四位数且是素数的门牌号,而且,每次都只能更换这个四位数的一个位置的数 ,也就是每换一次都只改变一个数字,而且对于这个每换一个位置的数字就要花费一个单位的价格,那么,为了节约,问他从现在的这个门牌号换到想要的那个门牌号最少要多少次(也就是最少花费) 题意很明确,最少次数用bfs,菜鸟刚做搜索觉得难点在于处理每一个四位数的整数变化过程 这里我们把这个四位数的整数拆开成一个 a[4]的数组,sum就是这个数的…
题目: The ministers of the cabinet were quite upset by the message from the Chief of Security stating that they would all have to change the four-digit room numbers on their offices.— It is a matter of security to change such things every now and then,…
描述 孤单的zydsg又一次孤单的度过了520,不过下一次不会再这样了.zydsg要做些改变,他想去和素数小姐姐约会. 所有的路口都被标号为了一个4位素数,zydsg现在的位置和素数小姐姐的家也是这样,如果两个路口间只差1个数字,则有一条路连通两个路口.(例如1033和1073间有一条路连接) 现在,你知道了zydsg的位置和素数小姐姐的家,问最少zydsg要走多少条路才能见到素数小姐姐.例如:如果zydsg在1033,素数小姐姐的家在8179,最少要走6条街,走法为: 1033 1733 37…