刷題報告004 洛谷P1007獨木橋

2021-08-04 13:27:56 字數 1794 閱讀 2904

嗨呀真是懈怠,看到題目之後實力摸魚,看了一下討論發現呀好簡單orz

題目背景

戰爭已經進入到緊要時間。你是運輸小隊長,正在率領運輸部隊向前線運送物資。運輸任務像做題一樣的無聊。你希望找些刺激,於是命令你的士兵們到前方的一座獨木橋上欣賞風景,而你留在橋下欣賞士兵們。士兵們十分憤怒,因為這座獨木橋十分狹窄,只能容納乙個人通過。假如有兩個人相向而行在橋上相遇,那麼他們兩個人將無妨繞過對方,只能有乙個人回頭下橋,讓另乙個人先通過。但是,可以有多個人同時呆在同乙個位置。

題目描述

突然,你收到從指揮部發來的資訊,敵軍的轟炸機正朝著你所在的獨木橋飛來!為了安全,你的部隊必須撤下獨木橋。獨木橋的長度為l,士兵們只能呆在座標為整數的地方。所有士兵的速度都為1,但乙個士兵某一時刻來到了座標為0或l+1的位置,他就離開了獨木橋。

每個士兵都有乙個初始面對的方向,他們會以勻速朝著這個方向行走,中途不會自己改變方向。但是,如果兩個士兵面對面相遇,他們無法彼此通過對方,於是就分別轉身,繼續行走。轉身不需要任何的時間。

由於先前的憤怒,你已不能控制你的士兵。甚至,你連每個士兵初始面對的方向都不知道。因此,你想要知道你的部隊最少需要多少時間就可能全部撤離獨木橋。另外,總部也在安排阻攔敵人的進攻,因此你還需要知道你的部隊最多需要多少時間才能全部撤離獨木橋。

輸入輸出格式

輸入格式:

第一行:乙個整數l,表示獨木橋的長度。橋上的座標為1…l

第二行:乙個整數n,表示初始時留在橋上的士兵數目

第三行:有n個整數,分別表示每個士兵的初始座標。

輸出格式:

只有一行,輸出兩個整數,分別表示部隊撤離獨木橋的最小時間和最大時間。兩個整數由乙個空格符分開。

輸入輸出樣例

輸入樣例#1:

4 2

1 3

輸出樣例#1:

2 4

說明

初始時,沒有兩個士兵同在乙個座標。

資料範圍n<=l<=5000。

這一題如果要考慮士兵撞到人又回頭,然後又撞到人再回頭……就沒辦法寫了。無窮無盡。不妨轉化下條件:

如果兩個士兵撞到的那個瞬間我們把兩個人替換一下,是不是就可以等效為直接從你的世界 路過,那這個問題就成功簡化了。問題就轉為:

求時間最長的那個人所需要的時間。

也就是說,對每乙個人到左右兩邊的兩個時間分別記錄,就有了乙個較大值,乙個較小值。我們分別對較大值和較小值序列取最大值,就有了最多時間和最少時間

lol

這道題居然還有士兵為0的情況

那我初始化鬧哪門子的-1……害得我wa了兩次

///

//////

//////

//////

//////

///////

////by frostwing98

/////

//////

//////

//////

//////

///////

#include

using namespace std;

int max(int a, int b)

int min(int a, int b)

int main(void)

if (length == 0||number==0)

else

cout << minimum << " "

<< maximum;

return

0;}

獨木橋 洛谷 P1007題

戰爭已經進入到緊要時間。你是運輸小隊長,正在率領運輸部隊向前線運送物資。運輸任務像做題一樣的無聊。你希望找些刺激,於是命令你的士兵們到前方的一座獨木橋上欣賞風景,而你留在橋下欣賞士兵們。士兵們十分憤怒,因為這座獨木橋十分狹窄,只能容納1個人通過。假如有2個人相向而行在橋上相遇,那麼他們2個人將無妨繞...

洛谷 P1007 獨木橋

題目背景 戰爭已經進入到緊要時間。你是運輸小隊長,正在率領運輸部隊向前線運送物資。運輸任務像做題一樣的無聊。你希望找些刺激,於是命令你的士兵們到前方的一座獨木橋上欣賞風景,而你留在橋下欣賞士兵們。士兵們十分憤怒,因為這座獨木橋十分狹窄,只能容納乙個人通過。假如有兩個人相向而行在橋上相遇,那麼他們兩個...

洛谷 P1007 獨木橋

題目背景 戰爭已經進入到緊要時間。你是運輸小隊長,正在率領運輸部隊向前線運送物資。運輸任務像做題一樣的無聊。你希望找些刺激,於是命令你的士兵們到前方的一座獨木橋上欣賞風景,而你留在橋下欣賞士兵們。士兵們十分憤怒,因為這座獨木橋十分狹窄,只能容納乙個人通過。假如有兩個人相向而行在橋上相遇,那麼他們兩個...