馬拉松接力賽(貪心)題解(1252)

2022-05-24 07:39:07 字數 1135 閱讀 7907

備註:要多思考啊,盡量學以致用啊,貪心 一定要多想想是不是具備無後效性!!

盡量開拓思路啊!!!

某城市冬季舉辦環城25km馬拉松接力賽,每個代表隊有5人參加比賽,比賽要求每個的每名參賽選手只能跑一次,一次至少跑1km、最多只能跑10km,而且每個選手所跑的公里數必須為整數,即接力的地方在整公里處。

劉老師作為學校代表隊的教練,精心選擇了5名長跑能手,進行了訓練和測試,得到了這5名選手盡力連續跑1km、2km、…、10km的所用時間。現在他要進行乙個合理的安排,讓每個選手跑合適的公里數,使學校代表隊跑完25km所用的時間最短。根據隊員的情況,這個最短的時間是惟一的,但安排方案可能並不惟一。

根據測試情況及一般運動員的情況得知,連續跑1km要比連續跑2km速度快,連續跑2km又要比連續跑3km速度快……也就是說連續跑的路程越長,速度越慢,當然也有特殊的,就是速度不會變慢,但是絕不可能變快。

輸入格式:

5行資料,分別是1到5號隊員的測試資料,每行的10個整數,表示某乙個運動員盡力連續跑1km、2km、…、10km所用的時間。

輸出格式:

兩行,第一行是最短的時間,第二行是五個資料,分別是1到5號隊員各自連續跑的公里數

#include

using namespace std;

int a[6][11],b[6][11],c[6]=,flag,ans,minx; //a陣列是用來輸入讀取的 b陣列是用來記錄計算這五個人每千公尺的速度 c陣列是用來記錄每個人跑的路程(即千公尺數)

int main() 

}for(int i=1;i<=20;i++)

c[flag]++;//找到這個千公尺下速度最快的

}for(int i = 1; i <= 5; i++) ans+=a[i][c[i]];

printf("%d\n%d %d %d %d %d\n",ans,c[1],c[2],c[3],c[4],c[5]);

return 0;

}比較 每乙個千公尺 哪個人跑的快 跑的快的(還沒有超出規定線的)跑

最後累計 每個人跑多少就可以了

至於 無效性嘛———每個人跑了多少公尺 不會影響到他後面的速度 因為 每個人的每個速度都是在輸入的時候給好的 是固定不變 這裡用到的貪心 也正好符合了無效性

題解洛谷P1252(c 解法)馬拉松接力賽

對於這道題,如果使用暴力的全排列來做的話,那麼顯然時間複雜度會妥妥的達到10 5,如果我們想要過掉所有的資料點的話,暴力排列就顯得十分無力,所以我們要選擇別的方法。這道題的特點在於要求最小值,因此我們可以往貪心和dp上去想,這裡介紹一種貪心演算法 由於每個人都需要跑,因此第一步肯定要將每乙個人分配一...

貪心演算法求跑完整個接力賽最少時間

有n個人參加乙個馬拉松接力遊戲,遊戲規定每個人可以根據自己的情況隨時終止遊戲並由下乙個人繼續接力。由於每個人的情況不同,即使同乙個人也不可能在整個遊戲過程中永遠保持很好的狀態。因此要求他們在比賽前根據每個人的情況需要制定乙個接力規則,使整個比賽的時間越少越好。請編寫程式幫助他們制定這樣的接力方案。輸...

廣西梧州舉辦警察半程馬拉松邀請賽 3000多人開跑

圖為比賽現場。賽事組委會供圖 梧州1月13日電 記者 楊志雄 黃艷梅 掃黑除惡 提振警威 2019廣西梧州警察半程馬拉松邀請賽13日開跑,3000多名選手齊聚西江河畔,領略 百年商埠 梧州市的魅力。本次賽事分為半程馬拉松警察組 半程馬拉松大眾組 十公里組 迷你馬拉松組共四個比賽專案,吸引了來自全國1...