某餐館有n張桌子,每張桌子有乙個引數:a 可容納的最大人數; 有m批客人,每批客人有兩個引數:b人數,c預計消費金額。 在不允許拼桌的情況下,請實現乙個演算法選擇其中一部分客人,使得總預計消費金額最大
輸入描述:
輸入包括m+2行。
第一行兩個整數n(1 <= n <= 50000),m(1 <= m <= 50000)
第二行為n個引數a,即每個桌子可容納的最大人數,以空格分隔,範圍均在32位int範圍內。
接下來m行,每行兩個引數b,c。分別表示第i批客人的人數和預計消費金額,以空格分隔,範圍均在32位int範圍內。
輸出描述:
輸出乙個整數,表示最大的總預計消費金額
輸入例子:
3 5
2 4 2
1 3
3 5
3 7
5 9
1 10
輸出例子:
20 資料規模比較大,注意用long long 不然會溢位。
就是貪心演算法,下面領略下c11的簡便之處。
#include
#include
#include
#include
using
namespace
std;
intconst maxn = 50010;
struct p
}peo[maxn];
bool cmp(const p& p1,const p& p2)
int desk[maxn];
int main()
vector
v; for (int i=0;iint a1,a2;
cin>>a1>>a2;
v.emplace_back(a1,a2);
}sort(v.begin(),v.end(),cmp);
long
long ans = 0;
for(auto i:v)
if(d.empty()) break;
}cout
<}
滴滴2017校招程式設計題 餐館
題目描述 某餐館有n張桌子,每張桌子有乙個引數 a 可容納的最大人數 有m批客人,每批客人有兩個引數 b人數,c預計消費金額。在不允許拼桌的情況下,請實現乙個演算法選擇其中一部分客人,使得總預計消費金額最大 輸入描述 輸入包括m 2行。第一行兩個整數n 1 n 50000 m 1 m 50000 第...
滴滴內推題 餐館
時間限制 1秒 空間限制 32768k 某餐館有n張桌子,每張桌子有乙個引數 a 可容納的最大人數 有m批客人,每批客人有兩個引數 b人數,c預計消費金額。在不允許拼桌的情況下,請實現乙個演算法選擇其中一部分客人,使得總預計消費金額最大 輸入描述 輸入包括m 2行。第一行兩個整數n 1 n 5000...
03 開餐館MOOC程式設計演算法基礎期末第三題
問題描述 北大資訊學院的同學小明畢業之後打算創業開餐館.現在共有n 個地點可供選擇。小明打算從中選擇合適的位置開設一些餐館。這 n 個地點排列在同一條直線上。我們用乙個整數序列m1,m2,mn 來表示他們的相對位置。由於地段關係,開餐館的利潤會有所不同。我們用pi 表示在mi 處開餐館的利潤。為了避...