2023年第四屆藍橋杯模擬賽試題 運送馬匹

2021-08-17 16:35:59 字數 965 閱讀 1423

有1個人,要把n匹馬從a村運往b村。

初始時,人和馬都在a村。每次騎1匹馬牽1匹馬,回來時騎1匹馬。

已知每匹馬從a村到b村需要的時間(數字越大越慢)

兩匹馬同行時只能遷就較慢者。

求所有馬匹都運到b村的最小的運輸時間(此時,人和馬都在b村)。

程式首先輸入乙個整數n(n<100),表示有n匹馬。

接著是n行整數,表示馬從a村到b村的所用的分鐘數(小於1000)

程式輸出:1個整數,表示所有馬匹均運到b村的最小總耗時。

例如,輸入:31

24程式應輸出:

7輸入:41

425程式應該輸出:

12對於程式設計題目,要求選手給出的解答完全符合ansi c++標準,不能使用諸如繪圖、win32api、中斷呼叫、硬體操作或與作業系統相關的api。

**中允許使用stl類庫,但不能使用mfc或atl等非ansi c++標準的類庫。例如,不能使用cstring型別(屬於mfc類庫)。

所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。

注意選擇自己使用的編譯環境。

分析:並不是用最快的馬運輸就可以得到最快的結果,根本原因在於如果最慢的兩匹馬同時走相當於省去了一匹慢馬運輸的時間。因此可以在每次運輸的時候將兩匹最慢的馬運到對面去,用兩匹最快的馬回來。也就是說,一組運輸會涉及到四匹馬:最快的兩匹和最慢的兩匹。當運輸馬的數量不多於三匹時,易得運輸時間就為馬的時間和馬的時間相加。

**:

#include#includeusing namespace std;

int a[100] = ;

int times = 0;

bool camp(int a, int b)

void tran(int n)

else if(n == 3)

else if(n == 2)

else }

int main()

2023年藍橋杯B組初賽(第四屆)

題目和參考 1.高斯日記 includeusing namespace std int month1 13 int month2 13 int main else y 1778 while day 365 else y m 1 if y 400 0 y 4 0 y 100 0 else cout i...

2013第四屆藍橋杯C C B組

大數學家高斯有個好習慣 無論如何都要記日記。他的日記有個與眾不同的地方,他從不註明年月日,而是用乙個整數代替,比如 4210 後來人們知道,那個整數就是日期,它表示那一天是高斯出生後的第幾天。這或許也是個好習慣,它時時刻刻提醒著主人 日子又過去一天,還有多少時光可以用於浪費呢?高斯出生於 1777年...

藍橋杯第四屆個人賽

小明正看著 203879 這個數字發呆。原來,203879 203879 41566646641 這有什麼神奇呢?仔細觀察,203879 是個6位數,並且它的每個數字上的數字都是不同的,並且它平方後的所有數字上都不出現組成它自身的數字。具有這樣特點的6位數還有乙個,請你找出它!再歸納一下篩選要求 1...