現有n組人,m個地點,給出每組人的人數,每個地點可容納的最大人數和選擇的**
要求一種方式,使得每組人都到乙個各不相同的地點,最小化選擇的**
每個隊伍的人都要在同乙個地方每個地方只能有乙個隊伍
第一行n,m第二行n個數,表示每組的人數
接下來m行,每行兩個數,表示可容納的最大人數和選擇的**
輸出最小化選擇的**,無解輸出-1示例1
3 42 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個人的拼車 ...