链接:https://ac.nowcoder.com/acm/contest/993/D
来源:牛客网

迷路的牛
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
Farmer John的三头获奖奶牛Bessie、Elsie和Mildred,总是会迷路走到农场上遥远的地方去!他需要你帮助将她们一起赶回来。
农场的草地大体是一块狭长的区域——我们可以将其想象成一条数轴,奶牛可以占据数轴上的任意整数位置。这3头奶牛现在正位于不同的整数位置,Farmer John想要移动她们,使得她们占据三个相邻的位置(例如,位置6、7、8)。

不幸的是,奶牛们现在很困,Farmer John要让她们集中精力听从命令移动并不容易。任意时刻,他只能使得一头处在“端点”(在所有奶牛中位置最小或最大)位置的奶牛移动。当他移动奶牛时,他可以命令她走到任意一个未被占用的整数位置,只要在新的位置上她不再是一个端点。可以看到随着时间的推移,这样的移动可以使奶牛们趋向越来越近。

请求出使得奶牛们集中到相邻位置所进行的移动次数的最小和最大可能值。

输入描述:
输入包含一行,包括三个空格分隔的整数,为Bessie、Elsie和Mildred的位置。每个位置均为一个范围1…10^9内的整数。
输出描述:
输出的第一行包含Farmer John需要将奶牛们聚集起来所需进行的最小移动次数。第二行包含他将奶牛聚集起来能够进行的最大移动次数。
示例1
输入
复制
4 7 9
输出
复制
1
2
说明
最小移动次数为1——如果Farmer John将位置4的奶牛移动到位置8,那么奶牛们就处在连续的位置7、8、9。最大移动次数为2。例如,位置9的奶牛可以被移动到位置6,然后位置7的奶牛可以被移动到位置5。
备注:
输入的数在[1,10^9]范围内

题意:

思路:
最小的操作次数一定是1或2,看解释:

如果有两个牛相隔一个数,那么最小只需要一步就可以完成操作。

否则最小只需要两步即可。

第一步移动一个端点的牛到与另外一个牛相隔一个数的位置,

第二步让另一个端点的牛移动到那个中间的位置即可。。

最大的就输出两个相邻的牛之间最大个间隔数。

细节见代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
#include <iomanip>
#define ALL(x) (x).begin(), (x).end()
#define sz(a) int(a.size())
#define all(a) a.begin(), a.end()
#define rep(i,x,n) for(int i=x;i<n;i++)
#define repd(i,x,n) for(int i=x;i<=n;i++)
#define pii pair<int,int>
#define pll pair<long long ,long long>
#define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define MS0(X) memset((X), 0, sizeof((X)))
#define MSC0(X) memset((X), '\0', sizeof((X)))
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define eps 1e-6
#define gg(x) getInt(&x)
#define chu(x) cout<<"["<<#x<<" "<<(x)<<"]"<<endl
using namespace std;
typedef long long ll;
ll gcd(ll a, ll b) {return b ? gcd(b, a % b) : a;}
ll lcm(ll a, ll b) {return a / gcd(a, b) * b;}
ll powmod(ll a, ll b, ll MOD) {ll ans = 1; while (b) {if (b % 2)ans = ans * a % MOD; a = a * a % MOD; b /= 2;} return ans;}
inline void getInt(int* p);
const int maxn = 1000010;
const int inf = 0x3f3f3f3f;
/*** TEMPLATE CODE * * STARTS HERE ***/ll a[50];
int main()
{//freopen("D:\\code\\text\\input.txt","r",stdin);//freopen("D:\\code\\text\\output.txt","w",stdout);gbtb;int n=3;repd(i,1,n){cin>>a[i];}sort(a+1,a+1+n);if(min(a[2]-a[1],a[3]-a[2])-1==0){cout<<min(2ll,max(a[2]-a[1],a[3]-a[2])-1)<<endl;}else{cout<<min(2ll,min(a[2]-a[1],a[3]-a[2])-1)<<endl;}cout<<max(a[2]-a[1],a[3]-a[2])-1<<endl;return 0;
}inline void getInt(int* p) {char ch;do {ch = getchar();} while (ch == ' ' || ch == '\n');if (ch == '-') {*p = -(getchar() - '0');while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 - ch + '0';}}else {*p = ch - '0';while ((ch = getchar()) >= '0' && ch <= '9') {*p = *p * 10 + ch - '0';}}
}

转载于:https://www.cnblogs.com/qieqiemin/p/11284811.html

牛客假日团队赛6 D 迷路的牛 (思维)相关推荐

  1. P5200 [USACO19JAN]Sleepy Cow Sorting 牛客假日团队赛6 D 迷路的牛 (贪心)

    链接:https://ac.nowcoder.com/acm/contest/993/E 来源:牛客网 对牛排序 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...

  2. 牛客假日团队赛8:F.Telephone Lines(二分+spfa)

    链接:https://ac.nowcoder.com/acm/contest/1069/F 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...

  3. 牛客假日团队赛8:H.Cell Phone Network(最小支配集)

    链接:https://ac.nowcoder.com/acm/contest/1069/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...

  4. 牛客假日团队赛8:K.Cow Contest(最短路(floyd)变形)

    链接:https://ac.nowcoder.com/acm/contest/1069/K 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...

  5. 牛客假日团队赛5 F 随机数 BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 (dfs记忆化搜索的数位DP)...

    链接:https://ac.nowcoder.com/acm/contest/984/F 来源:牛客网 随机数 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  6. 牛客假日团队赛10 L 乘积最大 (dp,大数)

    链接:https://ac.nowcoder.com/acm/contest/1072/L?&headNav=acm&headNav=acm 来源:牛客网 乘积最大 时间限制:C/C+ ...

  7. 牛客假日团队赛5J 护城河 bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 (凸包的周长)...

    链接:https://ac.nowcoder.com/acm/contest/984/J 来源:牛客网 护城河 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6 ...

  8. 牛客假日团队赛5 K 金币馅饼 (DP 基础题)

    链接:https://ac.nowcoder.com/acm/contest/984/K 来源:牛客网 金币馅饼 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...

  9. 牛客假日团队赛5 L Catch That Cow HDU 2717 (BFS)

    链接:https://ac.nowcoder.com/acm/contest/984/L 来源:牛客网 Catch That Cow 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 3 ...

最新文章

  1. NOI Day1线上同步赛梦游记
  2. 使用SQL Server 2008 Extended Events SSMS Addin轻松管理XEvents
  3. 关注,粉丝关系的数据库设计
  4. C语言实现的ABCI
  5. 国外在线学习网站+慕课平台
  6. C# 8 - Range 和 Index(范围和索引)
  7. opencv入门课程:彩色图像灰度化和二值化(采用skimage库和opencv库两种方法)
  8. 面积计算(洛谷P5681题题解,Java语言描述)
  9. QT5_chart_常见几种图形
  10. 1.2成员变量+类变量+static关键字
  11. RS485通讯常见问题汇总
  12. linux查看其他用户计划任务,Linux计划任务(crond、atd)
  13. oom 如何避免 高并发_高并发下的内存管理技巧
  14. 使用VMware搭建一个局域网网络拓扑
  15. 设计模式之简单化_Mediator中介者模式_只有一个仲裁者
  16. Unity Android 加载Sprite
  17. 华为AREngine根据深度图获取深度信息
  18. 华硕B85主板刷nvme协议全过程
  19. SCHURTER概况以及产品应用(一)+代理商渠道
  20. Syncthing文件同步方案完全攻略(亲测有效)

热门文章

  1. SAP One Order redesign里的新CDS view
  2. SAP CRM调查问卷的评分和图表显示功能介绍 1
  3. 观察者模式在SAP CRM One Order回调函数中的应用
  4. it计算机知识竞赛主持稿,校园IT知识竞赛策划书
  5. java加载自己写的类_java 自定义类加载器从磁盘或网络加载类
  6. 关于python类的继承正确的说法是_2017美团点评的运维岗校招笔试题,测测你会几题?...
  7. java 输入流关闭顺序_JAVA的节点流和处理流以及流的关闭顺序
  8. nacos集群的ap cp切换_配置中心Nacos
  9. git fock的子项目从上游仓库(源项目)同步更新
  10. 1、程序员常用工具网站