本题大意:一个农夫和一头牛在一个数轴上,牛不动,农夫每次可使自己的坐标 +1 , -1, *2 ,问最小需要多少次农夫与牛坐标相等。

  本题思路:最短路,BFS。

  本题代码:

 #include <cstdio>
#include <cstring>
#include <map>
#include <queue>
using namespace std; int n, k, ans;
const int maxn = 1e5 + , INF = -;
int step[maxn];
bool vis[maxn];
int bfs() {
int now, Next;
queue <int> s;
s.push(n);
step[n] = ;
vis[n] = true;
while(!s.empty()) {
now = s.front();
s.pop();
for(int i = ; i < ; i ++) {
if(i == )
Next = now - ;
else if(i == )
Next = now + ;
else
Next = now * ;
if(Next < || Next >= maxn) continue;
if(!vis[Next]) {
step[Next] = step[now] + ;
s.push(Next);
vis[Next] = true;
}
if(Next == k) return step[Next];
}
}
return -;
} int main () {
memset(vis, false, sizeof(vis));
memset(step, , sizeof(step));
scanf("%d %d", &n, &k);
ans = bfs();
printf("%d\n", ans);
return ;
}

最新文章

  1. 查询表结构sql
  2. CSS3的透明度使用
  3. rabbitMQ第四篇:远程调用
  4. Javascript 笔记与总结(2-4)Javascript 内置对象
  5. jboss4.2.3禁用http put/delete等请求
  6. 通过email分享
  7. mybatis实战教程(mybatis in action)之九:mybatis 代码生成工具的使用
  8. 解决outlook无法启动
  9. Math.random与java.util.Random的差别
  10. WebApp中调试jsavascript
  11. 记vue API 知识点
  12. 服务器开发之CGI后门
  13. Python实现微信消息防撤回
  14. DAX/PowerBI系列 - 关于时间系列 - 时间相关数值比较 - 用非自带函数
  15. linux 基本原则和常用命令
  16. 2.2 if语句
  17. 09-OpenLDAP加密传输配置
  18. 使用promise 和 generator来管理工作流
  19. codeforces 848B Rooter&#39;s Song 思维题
  20. 把旧系统迁移到.Net Core 2.0 日记(9) -- T4 Template

热门文章

  1. 使用STM32CubeMX生成RTC工程[秒中断]
  2. JAVA_连接池、DataSource、JNDI
  3. Linux命令:chown
  4. 强制停止ORACLE数据库
  5. replace()方法解析
  6. 22.多线程.md
  7. 14.Java集合简述.md
  8. tensorflow中run和eval的区别(转)
  9. python 引用和对象理解(转)
  10. k8s operator