Supermarket 並查集或貪心

2021-06-21 09:53:34 字數 784 閱讀 6299

題目大意:給你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...