搜索--07
来源:互联网 发布:成都 知乎 编辑:程序博客网 时间:2024/06/04 17:59
题目大概:
一个人捉一头牛,他们在一条直线上,人和牛分别在一个位置上n,m,牛不动,人可以左走1,右走1,右走2*n,问最少几步人可以捉到牛。
思路:
用广搜。
用队列存数据,每次都把该坐标下的三种走法存入队列,每次从队头取出数据判断是否捉到牛。
这里也可以把走的步数也存入队列,每次取出并删除。
代码:
#include <iostream>#include <queue>#include <cstring>#include <algorithm>using namespace std;queue<int>a;int n,k,j=0;int biao[100000];int dfs(){ a.push(n);a.push(0);biao[n]=1; while(!a.empty()) {int c=a.front(); a.pop();j=a.front();a.pop(); if(c==k)return 0; if(c+1<=100000&&!biao[c+1]){biao[c+1]=1; a.push(c+1);a.push(j+1);} if(c-1>=0&&!biao[c-1]){biao[c-1]=1; a.push(c-1);a.push(j+1);} if(2*c<=100000&&!biao[2*c]){biao[2*c]=1; a.push(2*c);a.push(j+1);} }return 0;}int main(){cin>>n>>k;memset(biao,0,sizeof(biao));dfs();cout<<j; return 0;}
0 0
- 搜索--07
- ACM-搜索-07
- 搜索练习题G-07
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- 搜索
- CentOS7使用firewalld打开关闭防火墙与端口
- 关于全排列
- 转换日期格式
- golang实现自定义驱动的Cache
- linux下安装安装jdk和安装android studio
- 搜索--07
- 详讲FL Studio显示模式按钮
- wordpress系列1:安装
- linux C++ 获取当前时间,以标准时间“年-月-日 时:分:秒”的形式输出
- Cookie的用法
- log4jdbc日志配置
- 微信小程序导航:官方文档+精品教程+demo集合(5月9日更新)
- 详讲FL Studio低频振荡器命令
- [leetcode: Python]107.Binary Tree Level Order Traversal 2