洛谷——P1588 丢失的牛

P1588 丢失的牛

题目描述

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

输入输出格式

输入格式:

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

输出格式:

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

输入输出样例

输入样例#1:

1
5 17

输出样例#1:

4

搜索什么鬼畜的边界、、在判断是否在超出边界时,先判断边界!注意末尾的换行!
#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn(1e5+5);
queue<int>q;
int t,s,e,dis[maxn];
int read()
{
    int x=0,f=1; char ch=getchar();
    while(ch<‘0‘||ch>‘9‘) ch=getchar();
    while(ch>=‘0‘&&ch<=‘9‘){x=x*10+ch-‘0‘; ch=getchar();}
    return x*f;
}
void bfs(int s,int y)
{
    while(!q.empty()) q.pop();
    memset(dis,0x3f3f3f3f,sizeof(dis));
    q.push(s); dis[s]=0;
    while(!q.empty())
    {
        int x=q.front(); q.pop();
        if(x==y) {printf("%d\n",dis[y]);return ;}
        if((2*x)<=maxn&&dis[2*x]>dis[x]+1)
          dis[x*2]=dis[x]+1,q.push(x*2);
        if((x-1)>0&&dis[x-1]>dis[x]+1)
          dis[x-1]=dis[x]+1,q.push(x-1);
        if((x+1)<=maxn&&dis[x+1]>dis[x]+1)
          dis[x+1]=dis[x]+1,q.push(x+1);
    }
}
int main()
{
    t=read();
    while(t--)
    {
        s=read(),e=read();
        if(e<s) printf("%d\n",s-e);
        else bfs(s,e);
    }
    return 0;
}
				
时间: 2024-10-12 15:22:23

洛谷——P1588 丢失的牛的相关文章

洛谷P1588 丢失的牛

P1588 丢失的牛 158通过 654提交 题目提供者JOHNKRAM 标签USACO 难度普及/提高- 时空限制1s / 128MB 提交  讨论  题解 最新讨论更多讨论 答案下载下来是对的,但过不- 此题卡stl的queue? 假的编译器... 怎么A不了 题目描述 FJ丢失了他的一头牛,他决定追回他的牛.已知FJ和牛在一条直线上,初始位置分别为x和y,假定牛在原地不动.FJ的行走方式很特别:他每一次可以前进一步.后退一步或者直接走到2*x的位置.计算他至少需要几步追上他的牛. 输入输出

洛谷——P1821 [USACO07FEB]银牛派对Silver Cow Party

P1821 [USACO07FEB]银牛派对Silver Cow Party 题目描述 One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the big cow party to be held at farm #X (1 ≤ X ≤ N). A total of M (1 ≤ M ≤ 100,000) unidirectional (one-way roads co

贪心 洛谷P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold

[USACO07DEC]最佳牛线,黄金Best Cow Line, Gold 题目描述 FJ is about to take his N (1 ≤ N ≤ 30,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges. The contest organ

洛谷P1211 [USACO1.3]牛式 Prime Cryptarithm

P1211 [USACO1.3]牛式 Prime Cryptarithm 187通过 234提交 题目提供者该用户不存在 标签USACO 难度普及- 提交  讨论  题解 最新讨论 题面错误 题目描述 下面是一个乘法竖式,如果用我们给定的那n个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式. *** x     ** ---------- *** *** ---------- **** (请复制到记事本) 数字只能取代*,当然第一位不能为0,况且给定的数字里不包括0. 注意一下在美国的学

l洛谷——P1211 [USACO1.3]牛式 Prime Cryptarithm

P1211 [USACO1.3]牛式 Prime Cryptarithm 题目描述 下面是一个乘法竖式,如果用我们给定的那n个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式. *** x ** ---------- *** *** ---------- **** (请复制到记事本) 数字只能取代*,当然第一位不能为0,况且给定的数字里不包括0. 注意一下在美国的学校中教的“部分乘积”,第一部分乘积是第二个数的个位和第一个数的积,第二部分乘积是第二个数的十位和第一个数的乘积. 写一个程序找

? 洛谷 P3056 [USACO12NOV]笨牛Clumsy Cows

P3056 [USACO12NOV]笨牛Clumsy Cows 题目描述 Bessie the cow is trying to type a balanced string of parentheses into her new laptop, but she is sufficiently clumsy (due to her large hooves) that she keeps mis-typing characters. Please help her by computing th

[Luogu P1588]丢失的牛

本题抽象一下就是从一个点出发,然后经过坐标x2或+1或-1到另一个点.显然这就是一个搜索题,而且显然可以看出步数最多就是两个点坐标之差.但是数据范围105,直接暴搜肯定要么MLE要么TLE,肯定不行,一定要加上优化. 我们注意到坐标的范围是(0,105],那么如果一个点扩展到了这个范围之外显然就不可能得到解了,因此直接剪枝.同时我们用bfs搜索,显然第一次搜到某个点那一定是到这个点的最少步数,之后再到达这个点就没必要再搜一遍了,有些记忆化的思想. 所以最后一顿剪枝操作就可以通过本题了,模拟的时候

洛谷P3045 [USACO12FEB]牛券Cow Coupons

P3045 [USACO12FEB]牛券Cow Coupons 71通过 248提交 题目提供者洛谷OnlineJudge 标签USACO2012云端 难度提高+/省选- 时空限制1s / 128MB 提交  讨论  题解 最新讨论更多讨论 86分求救 题目描述 Farmer John needs new cows! There are N cows for sale (1 <= N <= 50,000), and FJ has to spend no more than his budget

洛谷P1565 牛宫

洛谷P1565 牛宫 题目描述 AP 神牛准备给自己盖一座很华丽的宫殿.于是,他看中了一块N*M 的矩形空地. 空地中每个格子都有自己的海拔高度.AP 想让他的宫殿的平均海拔在海平面之上(假设 海平面的高度是0,平均数都会算吧?).而且,AP 希望他的宫殿尽量大,能够容纳更 多的人来膜拜他.请问AP 的宫殿最后会有多大? 输入输出格式 输入格式: 第一行为N 和M.之后N 行,每行M 个数,描述的空地的海拔. 输出格式: 输出一行,表示宫殿最大面积. 输入输出样例 输入样例: 3 24 0-10