博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kuangbin带你飞系列----poj3278 Catch That Cow
阅读量:4962 次
发布时间:2019-06-12

本文共 905 字,大约阅读时间需要 3 分钟。

本题题意:农夫和奶牛分别在数轴的两个点上,农夫可进行三种操作,将位置变为X+1,X-1,X*2,问最少几次操作后农夫能找到奶牛。

代码如下:

/*        Title:poj3278    Author:mtl6906        时间复杂度:O(n);    */#include 
#include
#include
using namespace std;queue
q;int a[100001];int n,k;/* 检查该步骤是否越界*/void check(int s,int t){ if(t > 100000 || t < 0)return; if(a[t]==-1) { a[t] = a[s] + 1; q.push(t); }}/* 三种操作*/void walk(int s){ check(s,s+1); check(s,s-1); check(s,s<<1);}/* 广度优先搜索,剪枝*/void bfs(int s){ q.push(s); a[s] = 0; while(!q.empty()) { walk(q.front()); if(a[k]!=-1)return; q.pop(); }}int main(){ while(scanf("%d%d",&n,&k)!=EOF) { memset(a,-1,sizeof(a)); bfs(n); printf("%d\n",a[k]); } return 0;}

这道题挺简单的,bfs搜索+dp优化。

转载于:https://www.cnblogs.com/mtl6906/p/7486635.html

你可能感兴趣的文章
【MemSQL Start[c]UP 3.0 - Round 1 C】 Pie Rules
查看>>
Ognl中“%”、“#”、“$”详解
查看>>
我对应用软件——美团的看法
查看>>
我最喜欢的 5 个 Gedit 插件
查看>>
OOoLatex:在 OpenOffice.org 中拔出 Latex 公式
查看>>
linu学习第二天:文件系统相关操作
查看>>
执行了的程序,才是你的程序.
查看>>
在AxureRP8中实现广告文字滚动效果
查看>>
jQuery获取CSS样式中的颜色值的问题
查看>>
struts2.x + Tiles2.x读取多个xml 配置文件
查看>>
Sqlite文件在ubunut的查看
查看>>
表单校验之datatype
查看>>
python第六篇文件处理类型
查看>>
kettle 数据库连接失败
查看>>
ListView失去焦点选中行不能高亮显示的问题解决
查看>>
# jsp及servlet学习笔记
查看>>
Kconfig详解
查看>>
(四)hadoop系列之__hadoop搭建(单机配置)
查看>>
nodejs爬虫数据存入mysql
查看>>
sphinx2.8.8的配置文件
查看>>