藍橋杯 ALGO 34 紀念品分組

2021-09-11 21:46:10 字數 1165 閱讀 2963

演算法訓練 紀念品分組  

時間限制:1.0s   記憶體限制:256.0mb

問題描述

元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得參加晚會的同學所獲得的紀念品價值 相對均衡,他要把購來的紀念品根據**進行分組,但每組最多只能包括兩件紀念品,並且每組紀念品的**之和不能超過乙個給定的整數。為了保證在盡量短的時 間內發完所有紀念品,樂樂希望分組的數目最少。

你的任務是寫乙個程式,找出所有分組方案中分組數最少的一種,輸出最少的分組數目。

輸入格式

輸入包含n+2行:

第1行包括乙個整數w,為每組紀念品**之和的上限。

第2行為乙個整數n,表示購來的紀念品的總件數。

第3~n+2行每行包含乙個正整數pi (5 <= pi

<= w),表示所對應紀念品的**。

輸出格式

輸出僅一行,包含乙個整數,即最少的分組數目。

樣例輸入

1009

9020

2030

5060

7080

90樣例輸出

資料規模和約定

50%的資料滿足:1 <= n

<= 15

100%的資料滿足:1 <= n

<= 30000, 80 <= w

<= 200

分析:將資料從小到大排列,將最小的資料與最大的相加後與w比較,若滿足要求則數量加一,否則選擇大數的前乙個數,以此類推。在遍歷資料後,將沒有被選入的資料再次遍歷,每有乙個則數量加一。

**:

#include#include#includeusing namespace std;

int main()

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

int left = 0, right = v.size() - 1;

int cnt = 0;

vectorvisit(n);

while (left < right) else

} if (left == right)

} for (int i = v.size() - 1; i >= 0; i--)

if (v[i] <= w)

} cout << cnt << endl;

return 0;

}

藍橋杯ALGO34 紀念品分組(貪心)

問題描述 元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得參加晚會的同學所獲得的紀念品價值 相對均衡,他要把購來的紀念品根據 進行分組,但每組最多只能包括兩件紀念品,並且每組紀念品的 之和不能超過乙個給定的整數。為了保證在盡量短的時 間內發完所有紀念品,樂樂希望分組的數目最少。你的任務...

藍橋杯 紀念品分組

藍橋杯練習 紀念品分組 問題描述 元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得參加晚會的同學所獲得的紀念品價值 相對均衡,他要把購來的紀念品根據 進行分組,但每組最多只能包括兩件紀念品,並且每組紀念品的 之和不能超過乙個給定的整數。為了保證在盡量短的時 間內發完所有紀念品,樂樂希望...

藍橋杯演算法訓練 紀念品分組

原題 演算法訓練 紀念品分組 時間限制 1.0s 記憶體限制 256.0mb 問題描述 元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得參加晚會的同學所獲得的紀念品價值 相對均衡,他要把購來的紀念品根據 進行分組,但每組最多只能包括兩件紀念品,並且每組紀念品的 之和不能超過乙個給定的整...