POJ-3126 暑假集训-搜索进阶F题
经验就是要认真细心,要深刻理解。num
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<ctype.h>
#include<queue>
using namespace std;
#define N 11000
typedef struct yes
{
int l, m;//location, money;
}YES;
YES s, e, p, q;
int isprime(int m);
bool visit[N];
void BFS();
int main()
{
int n;//number
cin >> n;
while(n--)
{
cin >> s.l >> e.l;
s.m=0;
BFS();
}
return 0;
}
void BFS()
{
int i, j, num, figure;
char s1[5], s2[5];
memset(visit, false, sizeof(visit));
queue<YES>que;
que.push(s);
visit[s.l]=true;
while(que.size())
{
p=que.front();
que.pop();
if(p.l==e.l)
{
cout << p.m << endl;
return;
}
figure=p.l;
for(i=3; i>=0; i--)
{
s1[i]=figure%10+'0';
figure/=10;
}
s1[4]='\0';
for(i=0; i<4; i++)
{
strcpy(s2, s1);
for(j=0; j<=9; j++)
{
if((i==0&&j==0)||s2[i]==j+'0')
continue;
s2[i]=j+'0';
num=atoi(s2);
if(num&1==0)
continue;
//if(num%2==0)
//continue;
if(isprime(num)&&!visit[num])
{
visit[num]=true;
q.l=num;
q.m=p.m+1;
que.push(q);
}
}
}
}
cout << "Impossible" << endl;
}
int isprime(int m)
{
int i;
int k=sqrt(m);
k=int(k);
for(i=2; i<=k; i++)
if(m%i==0)
return 0;
return 1;
}
POJ-3126 暑假集训-搜索进阶F题的更多相关文章
- poj3984《迷宫问题》暑假集训-搜索进阶
K - 迷宫问题 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:65536KB 64bit ...
- HDU2612 -暑假集训-搜索进阶N
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82828#problem/N这两天总是因为一些小错误耽误时间,我希望自己可以细心点.珍惜 ...
- Oil Deposits -----HDU1241暑假集训-搜索进阶
L - Oil Deposits Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:32768KB ...
- 2015 UESTC 搜索专题F题 Eight Puzzle 爆搜
Eight Puzzle Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/61 ...
- 暑假集训——cf热身赛部分题有感加其题解
刚刚开始集训,集训队队长暂时还没有拉专题,而是拉了部分codeforces上过题人数在2000左右的题组成了一场热身赛(其实就是一场练习),花了一天时间终于把它刷完了,其中很多题让我学到了很多骚操作, ...
- 2016huasacm暑假集训训练五 F - Monkey Banana Problem
题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/F 题意:求至上而下一条路径的所经过的值得和最大值,这题比赛时就出了 但当时看不懂题 ...
- 2016huasacm暑假集训训练三 F - Jungle Roads
题目链接:http://acm.hust.edu.cn/vjudge/contest/123674#problem/F 题意:在相通n个岛屿的所有桥都坏了,要重修,重修每一个桥所用的时间不同,求重修使 ...
- 2016HUAS暑假集训训练2 F - A Simple Problem with Integers
Description 给出了一个序列,你需要处理如下两种询问. "C a b c"表示给[a, b]区间中的值全部增加c (-10000 ≤ c ≤ 10000). " ...
- AYIT-2020 609暑假集训第一周周赛题 A - A计划
可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸的她再一次面临生命的考验.魔王已经发出消息说将在T时刻吃掉公主,因为他听信谣言说吃公主的肉也能长生不老.年迈的国王正是心急如焚,告招天下 ...
随机推荐
- jquery的find()
jQuery 遍历 - find() 方法 jQuery 遍历参考手册 实例 搜索所有段落中的后代 span 元素,并将其颜色设置为红色: $("p").find("sp ...
- mock测试类的时候,添加@InjectMocks
1.在单元测试某个类的时候,引入该类的时,添加注解@InjectMocks 2.该类的变量,需要添加注解:@Mock 3.类中需要第三方协作者时,通常会用到get和set方法注入.通过spring框架 ...
- NPOI 计算单元格高度
需求 要导出一个Excel,第一行是不定长字符串,合并单元格(A-G)已知,现要计算第一行的高度. 思路 已知,NPOI的宽度单位是1/256个英文字符,在本例中,A列的宽度是2048,即 2048 ...
- pwd 命令
Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. ...
- Spigot 算法之中的一个 计算调和级数的和
我是首先在[1] 注意到 Spigot-Algorithm的,这个算法公布的相当早.见[2]. [1] 给出几个令人惊异的程序.仅仅用非常少的代码就能够计算e,pi,log(2)等常数. 当中 ...
- 刷脸支付真的来啦!华为nova3带你玩转酷时代~
无论是不愿脱离手套的怕冷手. 或是沾满泥土芬芳的勤劳手. 还是挂着水滴的清洁手…… 每当这些时刻,打开支付宝认证支付, 指纹解锁的能力总是光彩尽失. 不过,就在华为nova 3的发布会上, 一项传说已 ...
- sublime无法使用package Control解决办法。
http://blog.csdn.net/freshlover/article/details/44261229
- php 获取文件加的名称
/*** * 根本平台类型获取文件名 */ function showGetFileName($type,$url){ #判断平台类型 if($type=='android'||$type=='ios ...
- python学习 05 函数switch功能
1.python没有switch功能,利用字典实现 如果用if else,可行但是效率不高
- python 基础 9.7 创建表
一. 创建表 #/usr/bin/python #-*- coding:utf-8 -*- #@Time :2017/11/22 18:05 #@Auther :liuzhenchuan #@Fi ...