dfs 练习
来源:互联网 发布:php.exe不是内部命令 编辑:程序博客网 时间:2024/06/05 14:09
代码大意为:一个数要经过几步变为另一个数;
内部题目,具体不能多说,自己无聊写的。
#include <iostream>#include <cstdio>#include <math.h>#include <algorithm>#include <vector>#include <queue>#include <cstring>using namespace std;int n,m;int visti[10005];vector <int> divisor(int n) { vector <int> res; for(int i=2; i*i<=n; i++) { if(n%i==0) { res.push_back(i); if(i!=n/i) res.push_back(n/i); } } return res;}vector <int> divi;int ans;int bfs() { priority_queue<int> que; que.push(n); visti[n]=1; int flag=0; while(!que.empty()) { int x=que.top(); que.pop(); ans++; divi=divisor(x); for(int i=0; i<(int)divi.size(); i++) { int newn=x+divi[i]; if(visti[newn]) continue; if(newn<m) { que.push(newn); } else if(newn==m) { ans++; flag=1; break; } } if(flag) break; } if(flag==0 && n!=m) ans=-1; else if(flag==0 && n==m) ans=0; return ans;}int main() { int T; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); memset(visti,0,sizeof(visti)); ans=-1; int a=bfs(); printf("%d\n",a); }}
阅读全文
0 0
- dfs练习
- dfs练习
- dfs 练习
- dfs入门练习一
- DFS小练习
- dfs算法练习
- DFS练习-HDU1010
- dfs 及其 bfs 一些练习
- [练习] dfs输出全排列
- DFS练习-codevs-1116四色问题
- hiho1268 九宫(DFS练习)
- 博弈搜索练习-BFS&DFS
- DFS练习一---HDU 1342
- POJ 1562 DFS水题练习
- 【练习07】 DFS 1024 N皇后问题
- 【练习07】 DFS 1011 蜘蛛牌
- BFS,DFS,DIJKSTRA算法基础练习
- DFS练习-codevs-1294全排列
- 深入理解jvm笔记1
- UnityShader——玩弄GlobalFog
- BZOJ3669: [Noi2014]魔法森林(LCT)
- vmware安装centos
- python文件操作
- dfs 练习
- 手把手教你玩转SOCKET模型:完成例程(Completion Routine)篇
- python3.5使用for(学习笔记)
- Thread与ThreadLocal同步机制的比较
- CSS3基础(3)——CSS3 布局属性全接触
- Spring整合Mybatis
- sqlserver、mysql、oracle各自的默认端口号
- Kotlin
- 在vue-cli项目中安装node-sass