題目思路:
_這道題需要用到前面介紹過的貪心策略,因此在這裡直接給出演算法的過程,你只需要借助priority_queue
來實現它。_
首先將螞蟻按照血量從大到小排序,並把鞋子(可以使用結構體或pair
來儲存鞋子的傷害值和費用)按照傷害值從高到低排序。逐個計算每只螞蟻需要用哪雙鞋子來踩,對於當前螞蟻的血量
antan
t,把所有傷害值不小於 antan
t 的鞋子放入優先佇列中。在這個優先佇列中,費用低的鞋子優先順序越高。在每次將鞋子放入優先佇列後,讓優先佇列的隊首元素(費用最低的鞋子)出隊並累積總費用。不斷迴圈,直到算出每只螞蟻對應的鞋子,或者發現沒有可用的鞋子時直接輸出no
。
**:
#include using namespace std;
struct node
};struct xiezim[100100];
bool cmp1(int a,int b)
bool cmp2(xiezi a,xiezi b)
int a[100100];
int main()
if(q.size()==0) flag=1;
else
}if(flag) printf("no\n");
else printf("%d\n",ans);
}
計蒜客 T 1213 拯救行動 bfs 優先佇列)
拯救行動 題目描述 現假設騎士可以向上 下 左 右四個方向移動,每移動乙個位置需要 1 個單位時間,殺死乙個守衛需要花費額外的 1 個單位時間。同時假設騎士足夠強壯,有能力殺死所有的守衛。給定牢房矩陣,公主 騎士和守衛在矩陣中的位置,請你計算拯救行動成功需要花費最短時間。輸入格式 1 兩個整數代表 ...
計蒜客 2019計蒜之道D
題意 現在給定你乙個字串 s ss 以及乙個整數 k kk,請求出 s ss的字典序最小的長度為 k kk的子串行。資料範圍 0 s 5000000 00 s 5000 000 樣例輸入 helloworld 5樣例輸出 ellld思路 假如我們先不考慮長度為k的限制我們應當怎麼做?我們以樣例為例子...
計蒜客 解碼
蒜頭君自己發明了一種字串的編碼方式,對於只含有大小寫字母的字串,可以用數字來表示括號裡面的串連續出現的次數 數字有可能超過一位數 比如a abcd 2等價於aabcdabcd。特別地,如果數字前面沒有括號,表示緊貼數字的前面的 乙個字母 出現的次數。比如abc2表示abcc。為了降低解碼的難度,蒜頭...