2431 移動奶牛(herding)

2021-10-05 20:38:28 字數 1525 閱讀 4090

題目描述

farmer john的三頭獲獎奶牛bessie、elsie和mildred,總是會迷路走到農場上遙遠的地方去!他需要你幫助將她們一起趕回來。

農場的草地大體是一塊狹長的區域——我們可以將其想象成一條數軸,奶牛可以佔據數軸上的任意整數字置。這3頭奶牛現在正位於不同的整數字置,farmer john想要移動她們,使得她們佔據三個相鄰的位置(例如,位置6、7、8)。

不幸的是,奶牛們現在很睏,farmer john要讓她們集中精力聽從命令移動並不容易。任意時刻,他只能使得一頭處在「端點」(在所有奶牛中位置最小或最大)位置的奶牛移動。當他移動奶牛時,他可以命令她走到任意乙個未被占用的整數字置,只要在新的位置上她不再是乙個端點。可以看到隨著時間的推移,這樣的移動可以使奶牛們趨向越來越近。

請求出使得奶牛們集中到相鄰位置所進行的移動次數的最小和最大可能值。

輸入

輸入包含一行,包括三個空格分隔的整數,為bessie、elsie和mildred的位置。每個位置均為乙個範圍1…10^9內的整數。

輸出

輸出的第一行包含farmer john需要將奶牛們聚集起來所需進行的最小移動次數。第二行包含他將奶牛聚集起來能夠進行的最大移動次數。

樣例輸入

4

79

樣例輸出

1

2

提示

最小移動次數為1——如果farmer john將位置4的奶牛移動到位置8,那麼奶牛們就處在連續的位置7、8、9。最大移動次數為2。例如,位置9的奶牛可以被移動到位置6,然後位置7的奶牛可以被移動到位置5。

題目大意:

將位於數軸上的三個正整數點,通過若干次操作變成三個相鄰的點,每次操作只能將位於兩端的乙個點置於另兩個點之間,求最少及最多次數。

模擬一下就行了。

#include

#include

#include

#include

#include

#include

#include

#define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);

using

namespace std;

const

int max=

2147483647

;const

int n=

1e6;

int a,b,c,minn=max,maxx=0;

intmain()

else

return0;

}

POJ 2431(優先佇列)

題意 從起點到終點距離為n,走1單位路程消耗1單位油,路上會有m個加油站分別出現在si的位置,路過加油站時可以選擇是否加油。問到達加油站最少需要加幾次油,不能到輸出 1.分析 整體上來看,汽車每經過乙個加油站就擁有了在這個加油站加油的能力,可以將加油站加入優先佇列,沒油時優先選取大的。收穫 路過即獲...

復健運動poj2431

題目大意 一頭牛從起點到終點,最開始有p公升油,每走一公里漏一公升油,路途上有許多加油點,油箱容量為無窮大,求能到終點的最小加油次數。挑戰程式設計競賽 建議首先處理輸入資料,使之成為到起點的距離。優先佇列練習 用優先佇列儲存路過的加油點的油。每次取用最大值,這樣會使加油次數儘量減少。每取出一次就an...

奶牛專題2 奶牛曬衣服

問題描述 在熊大媽英明的帶領下,時針和它的同伴生下了許多牛寶寶。熊大媽決定給每個寶寶都穿上可愛的嬰兒裝。於是,為牛寶寶洗曬衣服就成了很不爽的事情。聖人王擔負起了這個重任。洗完衣服後,你就要弄幹衣服。衣服在自然條件下用1的時間可以曬乾a點濕度。摳門的熊大媽買了1台烘衣機。使用烘衣機可以讓你用1的時間使...