貪心 過河問題

2021-08-18 11:15:53 字數 880 閱讀 5223

題目意思:

每個人過河都有自己的過河時間,有n個人想過河,但只有乙隻小船,最多只能裝2個人,

每一次過河,過河時間為用時最多的那人過河時間,如果還有人沒有過河,那麼過去乙個用時最少

的送回船。問n人過河最少要多少時間。

分析:參考網上的思路

題意:也就是乙個坐船問題,一共有兩個策略

①最快和次快過去,最快回;最慢和次慢過去,次快回,t=s[1]+s[0]+s[n-1]+s[1]。

②最快和最慢過去,最快回;最快和慢過去,最快回,t=s[n-1]+s[0]+s[n-2]+s[0]。

選擇兩者中用時較少的乙個策略執行。如此便將最慢和次慢送過河,對剩下n-2個人迴圈處理。

注意:

(1)當n=1、n=2、n=3時直接相加處理即可。

(2)有人划船過去到對岸,但也要有人把船划回到原來的位置,並不是划過去就完事了,再帶新的人過去河對岸。

#include #include #include using namespace std;

int a[1005];

int main()

if(n == 3)

time = time + a[0]+a[1]+a[2];

else if(n ==2)

time = time + a[1];

else if(n == 1)

time = time + a[0];

printf("%d\n",time);

}return 0;

}

貪心過河問題

過河問題 時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 ...

貪心 過河問題

時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 在漆黑的夜裡,n位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,n個人一共只帶了乙隻手電筒,而橋窄得只夠讓兩個人同時過。如果各自單獨過橋的話,n人所需要的時間已知 而如果兩...

過河問題(貪心)

時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 輸入第一行是乙個整數t 1 t 20 表示測試資料的組數 每組測試資料的第一行是乙個整數n 1 n 1000 表示共有n個人要過河 每組測試資料的第二行是n個整數si,表示此人過河所需要花時間。0輸出 輸出所有人都過河需要用的最...