poj 3126
来源:互联网 发布:淘宝市场行情教学视频 编辑:程序博客网 时间:2024/05/17 23:40
继续简单bfs
判断最小步骤把一个四位素数变成另外一个四位素数
#include <iostream>#include <sstream>#include <cstdio>#include <cstring>#include <cmath>#include <string>#include <vector>#include <set>#include <cctype>#include <algorithm>#include <cmath>#include <deque>#include <queue>#include <map>#include <queue>#include <list>#include <iomanip>using namespace std; //////#define INF 0xffffff7#define maxn 200010#define max(a,b)(a>b?a:b)///bool flag[10000],flag1[10000];queue<int> q;int n, a, b, ans;void prime() /*把1000—9999的素数先一次性求出来,用flag1标记那个位置是否是素数*/{int i,j,k;for(i = 1001; i < 10000; i += 2){k = sqrt(i * 1.0);for(j = 2; j <= k; j++)if(i % j == 0) break;if(j >= k + 1)flag1[i] = 1;}}void bfs(){int tmp;int i, j;int hp = 0, tp = 1, lc = 1;while (!q.empty())q.pop();q.push(a);flag[a] = true;while (!q.empty()){tmp = q.front();q.pop();hp++;if (tmp == b)return;int change;//对千位进行数字变换for (i = 1; i <= 9; i++){change = tmp - tmp / 1000 * 1000;change += i * 1000;if (flag1[change] && !flag[change]){flag[change] = true;q.push(change);tp++;}}//对百位for (i = 0; i <= 9; i++){int temp;temp = tmp / 100 % 10;change = tmp - temp * 100;change += i * 100;if (flag1[change] && !flag[change]){flag[change] = true;q.push(change);tp++;}}//对十位for (i = 0; i <= 9; i++){int temp;temp = tmp / 10 % 10;change = tmp - temp * 10;change += i * 10;if (flag1[change] && !flag[change]){flag[change] = true;q.push(change);tp++;}}//对个位for (i = 0; i <= 9; i++){int temp;temp = tmp % 10;change = tmp - temp;change += i;if (flag1[change] && !flag[change]){flag[change] = true;q.push(change);tp++;}}if (hp == lc){ans++;lc = tp;}}}int main(){///int i, j;prime();cin >> n;while (n--){cin >> a >> b;memset(flag, false, sizeof(flag));ans = 0;bfs();cout << ans << endl;}/// return 0;}
- POJ 3126
- poj 3126
- POJ 3126
- POJ 3126
- poj 3126
- poj 3126
- poj 3126
- POJ 3126
- poj 3126
- poj-3126
- poj 3126
- POJ 3126
- poj 3126
- 3126POJ
- poj 3126
- POJ 3126
- poj---3126
- poj 3126
- MongoDB学习笔记 insert和save的区别
- Android Apk签名
- 六十九、基础框架(二十七)文件操作-路径操作2
- 心酸的伤感空间日志发布:幸福,背后有着怎样的艰辛
- vi 命令行下粘贴
- poj 3126
- 【流媒體】Android 实时视频采集/编码/传输/解码/播放—方案调研(初)
- stm32输入捕获输出比较
- boost的filesystem库有待改进
- 七十、基础框架(二十八)文件操作-复制 文件 以及 NSProcessInfo这类物件的使用
- 浅谈这次ASP.NET的Padding Oracle Attack相关内容
- 通过修改location来实现兄弟frame间的页面跳转
- 爪哇(Java)自定义的二个字符串高效处理方法,在静寂一个半月之后
- 七十一、基础框架(二十九)文件操作-文件操作柄,NSFileHandle这类物件