CSU1090-Number Transformation-BFS
来源:互联网 发布:二六三网络通信 编辑:程序博客网 时间:2024/06/06 01:25
K: Number Transformation
Description
In this problem, you are given a pair of integers A and B. You can transform any integer number A to B by adding x to A.This x is an integer number which is a prime below A.Now,your task is to find the minimum number of transformation required to transform S to another integer number T.
Input
Input contains multiple test cases.Each test case contains a pair of integers S and T(0< S < T <= 1000) , one pair of integers per line.
Output
For each pair of input integers S and T you should output the minimum number of transformation needed as Sample output in one line. If it’s impossible ,then print ‘No path!’ without the quotes.
Sample Input
5 73 4
Sample Output
Need 1 step(s)No path!
我的思路:打素数表然后BFS(就是喜欢简单粗暴)
#include <bits/stdc++.h>#define N 10100#define INF 0x3f3f3f3f#define LL long long#define mem(a,n) memset(a,n,sizeof(a))#define fread freopen("in.txt","r",stdin)#define fwrite freopen("out.txt","w",stdout)using namespace std;const int prime[241]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997}; bool vis[1010];int main(){// ios::sync_with_stdio(false); queue<pair<int,int> > q; int n,m,ans; while(cin>>n>>m){ ans=0; mem(vis,0); while(!q.empty()){ q.pop(); } q.push(make_pair(n,0)); while(!q.empty()){ int temp=q.front().first,tempcnt=q.front().second; q.pop(); if(temp==m){ ans=tempcnt; break; }for(int i=0;i<241;++i){ if(prime[i]>=temp){ break; } if(temp+prime[i]<=m&&!vis[temp+prime[i]]){ q.push(make_pair(temp+prime[i],tempcnt+1)); vis[temp+prime[i]]=true; } } } if(ans){ printf("Need %d step(s)\n",ans); }else{ cout<<"No path!"<<endl; } } return 0;}/********************************************************************** Problem: 1090 User: CSUzick Language: C++ Result: AC Time:68 ms Memory:1700 kb**********************************************************************/
阅读全文
0 0
- CSU1090-Number Transformation-BFS
- coj1090: Number Transformation bfs
- LightOJ 1141 Number Transformation bfs
- Number Transformation-bfs+素数筛选法
- Number Transformation (bfs) (素数筛选)
- Codeforces Round #153 (Div. 1) C Number Transformation bfs
- Light OJ:1141 Number Transformation(BFS+素因子)
- 【llightoj】1141-Number Transformation BFS+查找质因子
- Number Transformation
- Number Transformation
- Number Transformation
- HDU - 4952 Number Transformation
- HDU4952-Number Transformation
- HDU 4952 Number Transformation
- HDOJ 4952 Number Transformation
- hdu 4952 Number Transformation
- hdu 4952 Number Transformation
- hdu 4952Number Transformation
- Seafile 个人网盘配置安装
- CSU1065-Scientific Conference-贪心
- 6174问题
- 使用Ettercap filter进行流量监听和数据篡改
- CSU1086-超市购物-分组背包
- CSU1090-Number Transformation-BFS
- VMware虚拟机磁盘操作占用过高问题
- Python语言里的method auto bind与JavaScript ES5显式function.bind语法
- CSU1093-Caps Lock-模拟
- 使用python实现用微信远程控制电脑
- delphi xe 之路(14)使用FireMonkeyStyle
- [翻译]Django1.11 Writing your first Django app, part 1
- CSU1101-报数游戏-模拟、枚举
- Core Data 基本用法