首页 > 其他分享 >8.抓住那头牛

8.抓住那头牛

时间:2023-08-04 14:13:28浏览次数:27  
标签:头牛 int add queue step 抓住 visited size

【题目】


农夫John和一头逃跑的牛在同一坐标轴上,John的初始位置为N(0<N<=100,000),牛的位置为K(0<K<=100,000),假定John在追逐过程中,牛不会移动,John有两种追逐方式:

1)从位置X移动X-1或者X+1需要一分钟时间;

2)一分钟内,可以从位置X移动到位置2*X。

问,John最少需要多少时间追到牛。


输入:
3 8
输出:
2
【思路】

广度优先搜索,用一个队列保存农夫每一步能走到的位置,用一个数组visited保存当前位置是否已经能够提前达到,如果能提前达到则不再走,每次搜索,step+1,如果农夫位置和牛位置重合,就返回step数。

 

【代码】

public static int coupons(int n, int k) {
        int step = 0;
        int[] visited = new int[100001];
        visited[n] = 1;
        Queue<Integer> queue = new LinkedList<>();
        queue.add(n);
        while (queue.size() > 0) {
            int size = queue.size();
            for (int i = size; i >0; i--) {
                int x = queue.poll();
                visited[x] = 1;
                if (x == k) {
                    return step;
                }
                if (visited[x - 1] == 0) {
                    queue.add(x - 1);
                }
                if (visited[x + 1] == 0) {
                    queue.add(x + 1);
                }
                if (x + x > 100000) continue;
                if (visited[x + x] == 0) {
                    queue.add(x + x);
                }
            }
        }
        step++;
        return step;
    }

 

标签:头牛,int,add,queue,step,抓住,visited,size
From: https://www.cnblogs.com/End1ess/p/17605762.html

相关文章

  • 抓住那头牛
    1.#include<bits/stdc++.h>#defineN100001usingnamespacestd;boolvis[N];intdir[2]={-1,1};structnode{intx;intstep;}q[N];voidbfs(intn,intk){inthead=1,tail=1;vis[n]=1;q[tail].x=n;q[tail].step=0;ta......
  • JavaScript引爆Salesforce职业生涯!抓住高薪机会
    Salesforce是一款领先的CRM软件,已被各种规模和行业的企业使用多年。Salesforce不仅易于使用,而且可定制,使企业能够改善其销售、营销、客户服务和其他业务流程。近年来,Salesforce一直在创新,从传统的基于Oracle的平台转变为在业界更具吸引力的解决方案。目前,许多工作可以由人工智能......
  • 1100. 抓住那头牛(bfs)
    https://www.acwing.com/problem/content/1102/数据范围为1e5实际上还可以再继续细分,加入特判来优化耗时,但是意义不大#include<iostream>#include<cstring>#include<cstdio>#include<queue>usingnamespacestd;constintN=1e5+10;intn,k;boolvis[N];int......
  • AIGC时代:超级个体的崛起,抓住这个风口
    文/高扬 今天的一则消息不知大家有没关注,中央会议精神特别提到“要重视通用人工智能发展,营造创新生态,重视防范风险。”    这表示国家层面已在重视通用人工智能的发展,也意味ChatGPT引爆的这场人工智能热潮还会持续下去。 我感觉今年的这场技术革新,很像2000年的......
  • 抓住医院信息集成平台建设核心诉求
    医院信息集成平台建设的需求,要求以支撑医院信息体系平稳运转,建立一个标准化、集成化的信息平台,达到信息资源广泛共享、互联互通的目的。医院信息平台将形成一个标准化、集成化的信息平台,对内集成临床信息系统、医院管理信息系统、电子病历浏览器,对外连接医保、公共卫生、区域......
  • 3.抓住那头牛(简单搜索 BFS)
    抓住那头牛↑题目链接题目农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点\(N\),牛位于点\(K\)。农夫有两种移动方式:从\(X\)移动到\(X−1\)或\(X+1\),每次移动花费一分钟从\(X\)移动到\(2∗X\),每次移动花费一分钟假设牛没有意识到农夫的行动,站......
  • 抓住Linux黄金60秒
    如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断。概述通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。uptimedmesg|tail......
  • CDGA|电力行业做好数据治理一定要抓住3个核心步骤
    电力行业近年来对数据开放、共享、融通的需求与日俱增,令电力数据安全建设的重要性也不断提高,而大数据治理作为解决数据问题的关键措施,应该怎么办呢?其实,电力行业数据治理一定要抓住三个关键步骤:自动采集各类数据资产信息对电力企业来说,要想管理好数据,首先需要获取到企业的全......
  • kuangbin专题一 简单搜索 抓住那头牛(POJ-3278)
    CatchThatCowTimeLimit:2000MS MemoryLimit:65536KTotalSubmissions:210291 Accepted:63838DescriptionFarmerJohnhasbeeninformedofthelocationofafugitivecowandwantstocatchherimmediately.HestartsatapointN(0≤N≤100,000)on......
  • 寒假每日一题——金发姑娘和N头牛(map+手写离散化)
    金发姑娘和N头牛问题描述你可能听过关于金发姑娘和三只熊的经典故事。然而,鲜为人知的是,金发姑娘最终成了一个农民。在她的农场中,她的牛棚里有N头奶牛。不幸的是,她的奶牛对温度相当敏感。对于奶牛i,使其感到舒适的温度为Ai…Bi。如果金发姑娘将牛棚的恒温器的温度T设置......