拼多多2018校招 小熊吃糖

2021-08-21 15:57:38 字數 1203 閱讀 7748

有n只小熊,他們有著各不相同的戰鬥力。每次他們吃糖時,會按照戰鬥力來排,戰鬥力高的小熊擁有優先選擇權。前面的小熊吃飽了,後面的小熊才能吃。每只小熊有乙個飢餓值,每次進食的時候,小熊們會選擇最大的能填飽自己當前飢餓值的那顆糖來吃,可能吃完沒飽會重複上述過程,但不會選擇吃撐。

現在給出n只小熊的戰鬥力和飢餓值,並且給出m顆糖能填飽的飢餓值。

求所有小熊進食完之後,每只小熊剩餘的飢餓值。

輸入描述:

第一行兩個正整數n和m,分別表示小熊數量和糖的數量。(n <= 10, m <= 100)

第二行m個正整數,每個表示著顆糖能填充的飢餓值。

接下來的n行,每行2個正整數,分別代表每只小熊的戰鬥力和當前飢餓值。

題目中所有輸入的數值小於等於100。

輸出描述:

輸出n行,每行乙個整數,代表每只小熊剩餘的飢餓值。
輸入例子1:

2 5

5 6 10 20 30

4 34

3 35

輸出例子1:

4

0

例子說明1:

第一只小熊吃了第5顆糖

第二隻小熊吃了第4顆糖

第二隻小熊吃了第3顆糖

第二隻小熊吃了第1顆糖

思路:

設計乙個結構-熊,其包含戰鬥力、飢餓值和id。對其物件變數先按照戰鬥力從大到小進行排序。

對輸入的糖的飢餓值排序。進行處理,處理完成後,按其id從大到小輸出熊的剩餘飢餓值。

#include#include#includestruct bear

;bool cmp1(const bear &a,const bear &b)

bool cmp2(const bear &a,const bear &b)

sort(sugar.begin(),sugar.end());

sort(br.begin(),br.end(),cmp1);

for(int i=0;i=0;--j)}}

sort(br.begin(),br.end(),cmp2);

for(int i=0;icout<

2018拼多多校招筆試貪心程式設計題小熊吃糖詳解

有n只小熊,他們有著各不相同的戰鬥力。每次他們吃糖時,會按照戰鬥力來排,戰鬥力高的小熊擁有優先選擇權。前面的小熊吃飽了,後面的小熊才能吃。每只小熊有乙個飢餓值,每次進食的時候,小熊們會選擇最大的能填飽自己當前飢餓值的那顆糖來吃,可能吃完沒飽會重複上述過程,但不會選擇吃撐。現在給出n只小熊的戰鬥力和飢...

拼多多2018校招 最大乘積

給定乙個無序陣列,包含正數 負數和0,要求從中找出3個數的乘積,使得乘積最大,要求時間複雜度 o n 空間複雜度 o 1 輸入描述 第一行是陣列大小n,第二行是無序整數陣列a n 輸出描述 滿足條件的最大乘積輸入例子1 4 3 4 1 2輸出例子1 24思路 找出最小 次小,最大,次大,第三大的五個...

2018拼多多校招 大整數相乘 Python解法

思路 大整數相乘,其實完全套用了列豎式計算乘法的思路,重點就是講豎式計算這一過程用 表示。豎式計算中,乙個乘數會和另乙個乘數逐位相乘,從個位到最高位,相乘的結果依次左移一位,最後將多個計算結果相加即可,而左移一位其實就是 10 times 10 10 期間同時考慮進製加至前一位,這樣整個思路就很清晰...