對於這道題,如果使用暴力的全排列來做的話,那麼顯然時間複雜度會妥妥的達到10^5,如果我們想要過掉所有的資料點的話,暴力排列就顯得十分無力,所以我們要選擇別的方法。
這道題的特點在於要求最小值,因此我們可以往貪心和dp上去想,這裡介紹一種貪心演算法:
由於每個人都需要跑,因此第一步肯定要將每乙個人分配一公里,那麼接下來該怎麼辦呢?
顯然無論在什麼狀態下,我們都要找跑這一公里最快的人來跑,因此我們只要每一次找每個人跑下一公里所需的時間再進行比較,就可以找到所需時間最短的人,將其標記即可。
或許你會問:每個人只能上場一次,如果按照剛剛的思路不就使得每個人上場多次了嗎?
其實這並不是問題,由於我們要找的是最短的時間,因此無論先跑還是後跑,最優方案的總時長不變,所以不會對結果造成影響。
關於無後效性,由於每一步只受之前的狀態影響,所以顯然沒有後效性。
最後有乙個注意事項:開的標記陣列不能超過10,否則會導致二維陣列越界。
最後,附上本題**。
#include
using
namespace std;
int a[6]
[11],aa[6]
[11],c[6]
,ans;
intmain()
}for
(int i=
1;i<=
20;i++)}
c[temp]++;
}for
(int i=
1;i<=
5;i++
)printf
("%d\n%d %d %d %d %d"
,ans,c[1]
,c[2
],c[3]
,c[4
],c[5]
);return0;
}
馬拉松接力賽(貪心)題解(1252)
備註 要多思考啊,盡量學以致用啊,貪心 一定要多想想是不是具備無後效性!盡量開拓思路啊!某城市冬季舉辦環城25km馬拉松接力賽,每個代表隊有5人參加比賽,比賽要求每個的每名參賽選手只能跑一次,一次至少跑1km 最多只能跑10km,而且每個選手所跑的公里數必須為整數,即接力的地方在整公里處。劉老師作為...
洛谷P1784 數獨題解(DFS解法)
數獨是根據 9 9 盤面上的已知數字,推理出所有剩餘空格的數字,並滿足每一行 每一列 每乙個粗線宮內的數字均含 1 9 不重複。每一道合格的數獨謎題都有且僅有唯一答案,推理方法也以此為基礎,任何無解或多解的題目都是不合格的。芬蘭一位數學家號稱設計出全球最難的 數獨遊戲 並刊登在報紙上,讓大家去挑戰。...
C 洛谷題解 P1425
題號 p1425 題名 小魚的游泳時間 題目 倫敦奧運會要到了,小魚在拼命練習游泳準備參加游泳比賽,可憐的小魚並不知道魚類是不能參加人類的奧運會的。這一天,小魚給自己的游泳時間做了精確的計時 本題中的計時都按24小時制計算 它發現自己從a時b分一直游泳到當天的c時d分,請你幫小魚計算一下,它這天一共...