題目大意:給你n個物品,每種物品都有乙個價值v和最晚**時間t,問你怎樣的順序**可獲得最大利潤?
首先說貪心法:把物品按價值降序排序,然後從開始遍歷物品,如果這個物品在最晚期限那天可以**,就在那天**,並標記這天有物品**,如果那天已經有物品**,就向前找能**的第乙個時間,標記,當找不到能**的時間,則這個物品不能**(因為這個物品能**的時間肯定被比他價值大的物品占用了),當然這種決策也保證了可以**總價值最大的物品,**如下:
#include#include#includeusing namespace std;
#define n 10005
bool hash[n];
struct nodes[n];
bool cmp(node x,node y)
int main()}}
printf("%d\n",sum);
}}
當然,你們會發現上面的**查詢可以**的時間 花了很多時間,這個題也可以用並查集,查詢速度當然比這個查詢要快,解釋在**裡,**如下:
#include#include#includeusing namespace std;
#define n 10005
struct nodes[n];
int fa[n];
bool cmp(node x,node y)
int find(int x)
int main()
}printf("%d\n",sum);
}}
Supermarket(貪心 並查集)
題目鏈結 原創的部落格 題意 超市裡有n個商品.第i個商品必須在保質期 第di天 之前賣掉,若賣掉可讓超市獲得pi的利潤。每天只能賣乙個商品。現在你要讓超市獲得最大的利潤。n p i d i 範圍都在10000以內 include include include include include in...
POJ1456 Supermarket 並查集版
並查集 題目傳送門 堆作法 貪心的想,我們盡量先把利潤高的商品安排了。假如把利潤高的物品安排在第 x 天,顯然比安排任何利潤比他低的商品在第 x 天更優。這就保證了我們先賣利潤高的物品的貪心正確性。另外,如果能盡量把安排的日子靠後就靠後,這樣擁有決策包含性的性質,這種貪心顯然是最優的。時間複雜度 o...
X Distance 搜尋或並查集
給你乙個帶權無向圖,n個節點,m條邊,乙個節點到另乙個節點的路徑的cost等於路徑上所有邊權值的最大值,求有多少對節點路徑cost等於x language c cpu time usage 204 ms memory usage 9020 kb source code 1361 bytes incl...