首页 > 其他分享 >K11505 The Lost cow[USACO-2017-USOpen-B]

K11505 The Lost cow[USACO-2017-USOpen-B]

时间:2024-08-03 13:24:13浏览次数:14  
标签:cnt x1 K11505 cow USOpen 位置 Farmer Bessie John

题目描述

Farmer John最珍贵的奶牛Bessie丢了,他需要把它找回来。

幸运的是,农场里只有一条长长的直路,他知道Bessie肯定在这条路上的某个地方。如果我们把这条路看成数轴,假设Farmer John所在位置是x,Bessie所在的位置是y(对于John是未知的),如果Farmer John知道Bessie的位置,那么他就可以直接走过去,步行的距离是|x-y|.但不幸的是,外面非常黑,Farmer John什么都看不见,他只能沿着路来来回回的走直到他最终遇到Bessie。

为了找到最佳的寻找Bessie的方法,Farmer John参考了一些计算机科学研究文献,发现计算机科学家们确实研究过“丢失的奶牛”的问题。文献中建议Farmer John找到Bessie的解决方案是:

Farmer John先从初始位置x,走到x+1的位置,然后反方向走到x-2的位置,然后在调走走到x+4位置,等等。这种模式为成为“Z字形”模式,这种模式中,每一步达到的位置与初始位置的距离差都是上一步的两倍。这种方法表示,最坏的情况下他需要走9倍的|x-y|的直线距离才能找到Bessie。

Farmer John对这个结果非常好奇,现在给定x和y,请计算出如果采用这种"Z字形"模式,Farmer John在找到Bessie前,他一共需要走的路程的总距离。

输入格式

输入是一行,包含两个用空格隔开的整数,分别代表x和y。x和y的范围都是0~1000

输出格式

输出仅一行,表示在找到Bessie前,Farmer John一共需要走的路程的总距离。

输入输出样例

输入样例1:
3 6
输出样例1:
9

【耗时限制】1000ms 【内存限制】128MB

首先,这题应该用模拟的方法来解决,可以模拟Farmer John的行走路径,再算路程总和

代码:

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL x,y,cnt=0;
int main()
{
    cin>>x>>y;
    LL end=9*abs(x-y),num=1,x1=x,h=0;
    while(cnt<=end){              //这里也可以写死循环
        h=x+num;
        if(y>=x1&&y<=h){cnt+=abs(y-x1);break;}
        else cnt+=abs(h-x1);
        x1=h;
        num*=-2;
        //分界线,上面是正,下面是负
        h=x+num;
        if(y<=x1&&y>=h){cnt+=abs(y-x1);break;}
        else cnt+=abs(h-x1);
        x1=h;
        num*=-2;
    }
    cout<<cnt;
    return 0;
}

标签:cnt,x1,K11505,cow,USOpen,位置,Farmer,Bessie,John
From: https://blog.csdn.net/2301_79502610/article/details/140798875

相关文章

  • 洛谷题单指南-前缀和差分与离散化-P3029 [USACO11NOV] Cow Lineup S
    原题链接:https://www.luogu.com.cn/problem/P3029题意解读:不同的坐标位置有不同种类的牛,要计算一个最小的区间,包括所有种类的牛。解题思路:由于坐标位置不连续,并且数值范围较大,因此需要离散化处理,将坐标处理成1~n连续分布由于种类编号数值范围也比较大,也需要离散化处理,去重后的......
  • [USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包
    凸包,顾名思义,就是凸多边形包围,具体定义见OI-wiki(既是周长最小也是面积最小)有Graham算法和Andrew算法,后者精度更高常数更小(因为不涉及求角度)Andrew算法:1.将点排序(横坐标为第一关键字,纵坐标为第二关键字)2.从左到右维护上半部分,再从右到左维护下半部分。具体见OI-wiki。最后说的......
  • POJ3278 Catch That Cow
    CatchThatCowTimeLimit: 2000MS MemoryLimit: 65536KTotalSubmissions: 222142 Accepted: 67092DescriptionFarmerJohnhasbeeninformedofthelocationofafugitivecowandwantstocatchherimmediately.Hestartsatapoint N (0......
  • 题解:P10450 [USACO03MAR] Best Cow Fences G
    题目链接O(n^3)做法直接暴力枚举长度、起点,再全部跑一边求平均数。附上我丑陋的代码和提交记录,这个代码可以得42分。#include<bits/stdc++.h>usingnamespacestd;constintNR=1e5+5;longlongn,l,a[NR],sum,ave;intmain(){ cin>>n>>l; for(inti......
  • P10280 [USACO24OPEN] Cowreography G 题解
    Description奶牛们组了一支舞蹈队,FarmerJohn是她们的编舞!舞蹈队最新而最精彩的舞蹈有\(N\)头奶牛(\(2\leN\le10^6\))排成一行。舞蹈中的每次动作都涉及两头奶牛,至多相距\(K\)个位置(\(1\leK<N\)),优雅地跳起并降落在对方的位置上。队伍中有两种奶牛——更赛牛(Guernsey)和荷......
  • P3089 [USACO13NOV] Pogo-Cow S
    原题链接题解暴力dp:遍历\(i,j,k\),\(dp[i][j]=\max(dp[j][k])+v_i\)其中\(x_i-x_j\geqx_j-x_k\)优化:对于\(j\)来说,随着\(i\)越大,\(k\)可以越小,因此省去了遍历一层\(k\),而是维护每个点的\(k\),(反正求的是最大值)细节1.有两个方向2.任意起点code#include<bit......
  • mailcow邮件服务器的安全防护措施有哪些?
    mailcow邮件服务器如何搭建?邮件服务器的优势特点?mailcow邮件服务器是一款功能强大的开源电子邮件服务器套件,旨在为用户提供高效、安全的邮件服务。为了确保邮件服务器的安全,mailcow邮件服务器采取了一系列的安全防护措施,AokSend将详细探讨这些措施。mailcow邮件服务器:访问控......
  • qcow2恢复案例
    确认文件和进程信息:使用lsof命令确认虚拟机进程正在使用已删除的qcow2文件,并记录文件描述符和虚拟机进程ID(例如3914和11u)。sudolsof|grepdeleted复制文件内容:使用文件描述符路径复制已删除的qcow2文件到一个新的目标位置。例如,假设文件描述符路径为/proc/3914/fd/11,将文件......
  • 题解:SP11469 SUBSET - Balanced Cow Subsets
    SP11469(折半搜索)题目大意:给出$N$个数,求可以被分成两个和相等的集合的子集数。思路分析:首先考虑朴素的DFS,每个数有三种情况:选为$A$集合,选为$B$集合,两个集合都不选。暴力DFS时间复杂度为$3^{20}$。观察到$N$很小,而$3^{10}$是可以通过本题的,于是考虑折半搜索。我......
  • 使用Docker部署mailcow开源邮件系统详细过程
    1.项目介绍项目网站:mailcow:dockerized–Blog根据官方介绍,这个项目名称是mailcow,名称都是小写的。下面内容是通过AI翻译自官方文档:mailcow:dockerizeddocumentationmailcow:dockerized是一个基于Docker的开源组件/电子邮件套件。mailcow依赖于许多广为人知且长期......