Wannafly挑戰賽15 A 最小化價格

2021-08-19 21:53:24 字數 915 閱讀 4989

現有n組人,m個地點,給出每組人的人數,每個地點可容納的最大人數和選擇的**

要求一種方式,使得每組人都到乙個各不相同的地點,最小化選擇的**

每個隊伍的人都要在同乙個地方每個地方只能有乙個隊伍

第一行n,m

第二行n個數,表示每組的人數

接下來m行,每行兩個數,表示可容納的最大人數和選擇的**

輸出最小化選擇的**,無解輸出-1
示例1

3 4

2 3 4

1 22 3

3 44 5

12

所有的資料都小於1e5

題解:我們可以先將n組人排好序,和m個地點排好序

那麼對於n組人中最大的來說,將m個地點中大於其的全部加入優先佇列。優先佇列裡存的是可以放下當前組的花費。

只需要保證優先佇列中都是滿足條件的地點即可。

當優先隊列為空時就是無解的時候。

**:

/**

優先佇列預設數值大的優先順序高!!

*/#includeusing namespace std;

const int maxn = 1e5+10;

typedef long long ll;

struct place

};place num[maxn];

ll arr[maxn];

bool vis[maxn];

bool cmp(const place &a,const place &b)

int main()

else

}if(flag == false) printf("-1\n");

else printf("%lld\n",ans);

}return 0;

}

Wannafly挑戰賽15 A最小化價格

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 現有n組人,m個地點,給出每組人的人數,每個地點可容納的最大人數和選擇的 要求一種方式,使得每組人都到乙個各不相同的地點,最小化選擇的 每個隊伍的人都要在同乙個地方每個...

Wannafly挑戰賽15 A 最小化價格(貪心)

題目鏈結 time limit 1000 ms memory limit 65536 kb 現有n組人,m個地點,給出每組人的人數,每個地點可容納的最大人數和選擇的 要求一種方式,使得每組人都到乙個各不相同的地點,最小化選擇的 每個隊伍的人都要在同乙個地方每個地方只能有乙個隊伍 第一行n,m 第二行...

Wannafly挑戰賽15 B 車輛安排

鏈結 題目描述 有n個隊伍,每個隊伍的人數小於等於5,每輛車最多坐5個人,要求乙個隊伍的人都在一輛車上,求最少的車數 輸入描述 第一行n 第二行n個數,表示每個隊伍的人數 輸出描述 輸出最少車數 示例1 輸入3 3 4 5 輸出 備註 n 1e5 每個數小於等於5 貪心 4個人的只能和1個人的拼車 ...