[kuangbin带你飞]专题一 简单搜索 F POJ3126
2016-09-17 19:50
316 查看
题目地址:https://vjudge.net/contest/65959#problem/F
思路:bfs,对每个数分别枚举他的个十百千位,然后判断是否出现过以及是否为质数。
AC代码:
思路:bfs,对每个数分别枚举他的个十百千位,然后判断是否出现过以及是否为质数。
AC代码:
#include<iostream> #include<cstring> #include<cstdio> #include<queue> #include<cmath> using namespace std; bool vis[10005]; int T; struct point{ int a,b; }; bool prime(int x) { for(int i=2;i<=sqrt(x);i++) { if(x%i==0) return false; } return true; } int main() { scanf("%d",&T); while(T--) { memset(vis,false,sizeof(vis)); int s,e; scanf("%d%d",&s,&e); queue<point>q; vis[s]=true; q.push(point{s,0}); int k=1; while(!q.empty()) { int temp=q.front().a; int temp2=q.front().b; q.pop(); if(temp==e) { printf("%d\n",temp2); k=0; break; } int a=temp%10;//个位 int b=temp/10%10;//十位 int c=temp/100%10;//百味 int d=temp/1000;//千位 for(int i=1;i<=9;i+=2) { int now=d*1000+c*100+b*10+i; if(prime(now) && !vis[now]) { q.push(point{now,temp2+1}); vis[now]=true; } } for(int i=0;i<=9;i++) { int now=d*1000+c*100+i*10+a; if(prime(now) && !vis[now] ) { q.push(point{now,temp2+1}); vis[now]=true; } } for(int i=0;i<=9;i++) { int now=d*1000+i*100+b*10+a; if(prime(now) && !vis[now] ) { q.push(point{now,temp2+1}); vis[now]=true; } } for(int i=1;i<=9;i++) { int now=i*1000+c*100+b*10+a; if(prime(now) && !vis[now] ) { q.push(point{now,temp2+1}); vis[now]=true; } } } if(k) printf("Impossible\n"); } }
相关文章推荐
- [kuangbin带你飞]专题一 简单搜索I - Fire Game(FZU 2150)
- [kuangbin带你飞]专题1——简单搜索——母牛翻转问题
- [kuangbin带你飞]专题一 简单搜索 - E - Find The Multiple
- POJ 3279 Fliptile(kuangbin带你飞 专题一:简单搜索)
- [kuangbin带你飞]专题一 简单搜索 - K - 迷宫问题
- [kuangbin带你飞]专题一 简单搜索 - N - Find a way
- [kuangbin带你飞]专题一 简单搜索C - Catch That Cow(POJ 3278)
- [kuangbin带你飞]专题一 简单搜索 - C - Catch That Cow
- [kuangbin带你飞]专题一 简单搜索 - B - Dungeon Master
- [kuangbin带你飞]专题一 简单搜索G - Shuffle'm Up(POJ 3087)
- POJ 3984 迷宫问题(kuangbin带你飞 专题一:简单搜索)
- [kuangbin带你飞]专题一 简单搜索 A - 棋盘问题(POJ 1321)
- POJ 3126 Prime Path(kuangbin带你飞 专题一:简单搜索)
- [kuangbin带你飞]专题一 简单搜索E - Find The Multiple(POJ 1426)
- [kuangbin带你飞]专题一 简单搜索 - L - Oil Deposits
- [kuangbin带你飞]专题一 简单搜索J - Fire!(UVA 11624)
- Fire Game [kuangbin带你飞]专题一 简单搜索
- FZU 2150 Fire Game(kuangbin带你飞 专题一:简单搜索)
- [kuangbin带你飞]专题一 简单搜索 - D - Fliptile
- [kuangbin带你飞]专题一 简单搜索F - Prime Path(POJ 3126)