程式設計題 餐館

2021-07-26 07:02:49 字數 1062 閱讀 9091

某餐館有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 處開餐館的利潤。為了避...