day6 POJ 3126 Prime Path
来源:互联网 发布:eviews非线性回归算法 编辑:程序博客网 时间:2024/06/03 20:41
求解两个素数之间最小的变换,每次只能变动一个数字并且变动后必须为素数。
BFS的本质是搜索当前状态改变一次所能到达的所有状态,那么只需要枚举四个数字每个数字的变化并且进行搜索就可以了
这里注意一个点,在写判断素数的函数的时候 i<=sqrt(x) 我漏掉了=号 这样就会让很多数字判断错误结果WA了很多次 细节还是要多注意
#include"iostream"#include"queue"#include"cmath"using namespace std;queue<int>q;int st,ed;int v[10000];int prime(int x){ if(x==2||x==3) return 1; if(x<=1||x%2==0) return 0; for(int i=2;i<=sqrt(x);i++) if(x%i==0) return 0; return 1;}void BFS(int st,int y){ while(!q.empty()) q.pop(); q.push(st); while(!q.empty()) { int x=q.front(); //cout<<w<<endl; //cout<<endl; if(x==y) {cout<<v[x]<<endl; return;} int w; q.pop(); //int k=x/10; for(int i=1;i<10;i+=2) { w=x/10*10+i; if(w!=x&&prime(w)&&v[w]==-1) { v[w]=v[x]+1; q.push(w); } } // k=x/100; int m=x%10; for(int i=0;i<10;i++) { w=x/100*100+i*10+x%10; if(w!=x&&prime(w)&&v[w]==-1) { v[w]=v[x]+1; q.push(w); } } //k=x/1000; m=x%100; for(int i=0;i<10;i++) { w=x/1000*1000+i*100+x%100; if(w!=x&&prime(w)&&v[w]==-1) { v[w]=v[x]+1; q.push(w); } } //m=x%1000; for(int i=1;i<10;i++) { w=i*1000+x%1000; if(w!=x&&prime(w)&&v[w]==-1) { v[w]=v[x]+1; q.push(w); } } } cout<<"Impossible"<<endl;}int main(){ int t; cin>>t; while(t--) { cin>>st>>ed; for(int i=0;i<10000;i++) v[i]=-1; v[st]=0; BFS(st,ed); } return 0;}
0 0
- day6 POJ 3126 Prime Path
- POJ 3126 Prime Path
- POJ 3126 Prime Path
- poj 3126Prime Path
- POJ -3126-Prime Path
- POJ 3126 Prime Path
- poj 3126 Prime Path
- POJ 3126 - Prime Path
- POJ 3126 Prime Path
- poj 3126 prime path
- POJ 3126 Prime Path
- Prime Path poj 3126
- POJ 3126 Prime Path
- poj 3126 Prime Path
- POJ 3126 Prime Path
- poj 3126 Prime path
- poj - 3126 - Prime Path
- POJ 3126 Prime Path
- 正式开启学霸模式(java服务器端开发)
- android实现文件下载的几种方式
- scala基础36-List的map/flatmap/filter等操作
- 新建java项目使用this.classLoader.getResourceAsStream方法导入xml文件时报找不到文件原因
- 313. Super Ugly Number
- day6 POJ 3126 Prime Path
- Q21:包含min函数的栈
- 一个maven setting文件的配置
- poj 2631 Roads in the North (树的直径模板题)
- 分类(Category)使用
- Java中List,ArrayList、Vector,map,HashTable,HashMap区别用法
- 再谈文件中的不可见字符
- 51Nod-1095-Anigram单词
- Mac OS 安装PHP7