博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷 P1588 丢失的牛
阅读量:4967 次
发布时间:2019-06-12

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

题目描述

FJ丢失了他的一头牛,他决定追回他的牛。已知FJ和牛在一条直线上,初始位置分别为x和y,假定牛在原地不动。FJ的行走方式很特别:他每一次可以前进一步、后退一步或者直接走到2*x的位置。计算他至少需要几步追上他的牛。

输入输出格式

输入格式:

 

第一行为一个整数t(≤10),表示数据组数;接下来每行包含一个两个正整数x和y(0<x,y≤10^5),分别表示FJ和牛的坐标。

 

输出格式:

 

对于每组数据,输出最少步数。

 

输入输出样例

输入样例#1: 
1 5 17
输出样例#1: 
4 思路:宽搜一下就可以。
#include
#include
#include
#include
using namespace std;int t,x,y;int ans=0x7f7f7f7f;void dfs(int pos,int tot){ if(tot>ans) return ; if(pos==y){ ans=min(tot,ans); return ; } dfs(pos+1,tot+1); dfs(pos-1,tot+1); dfs(pos*2,tot+1);}int main(){ scanf("%d",&t); while(t--){ scanf("%d%d",&x,&y); dfs(x,0); cout<
<
TLE的dfs
#include
#include
#include
#include
#include
using namespace std;int t,x,y;int vis[500000];struct nond{ int pos,step;};queue
que;void bfs(int x){ while(!que.empty()) que.pop(); nond tmp;tmp.pos=x;tmp.step=0; vis[x]=1;que.push(tmp); while(!que.empty()){ nond now=que.front(); que.pop(); nond a,b,c; c.pos=now.pos+1;c.step=now.step+1;if(c.pos<200000&&!vis[c.pos]) que.push(c),vis[c.pos]=1; if(c.pos==y){ cout<
<

 

 

转载于:https://www.cnblogs.com/cangT-Tlan/p/8213657.html

你可能感兴趣的文章
python考点
查看>>
DataMining--Python基础入门
查看>>
单片机复位电路
查看>>
php json_decode失败,返回null
查看>>
获取单选按钮选中的值
查看>>
oracle 分页
查看>>
助教学期总结
查看>>
绘制基本 图形之矩形与多边形
查看>>
3-day3-list-truple-map.py
查看>>
02: djangorestframework使用
查看>>
7zip 自解压安装程序
查看>>
Edit控件显示多行文字
查看>>
JS第二周
查看>>
dataTable.NET的search box每輸入一個字母進行一次檢索的問題
查看>>
Python 文件处理
查看>>
邻接表详解
查看>>
服务器一:分布式服务器结构
查看>>
迭代dict的value
查看>>
eclipse package,source folder,folder区别及相互转换
查看>>
Py 可能是最全面的 python 字符串拼接总结(带注释版)
查看>>