紀念品分組 貪心

2021-07-11 12:54:59 字數 1472 閱讀 1821

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

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

貪心,

每次將最小的和最大的合併,否則最大的單獨劃出

#include

using namespace std;

#define for(i,n) for(int i=1;i<=n;i++)

#define fork(i,k,n) for(int i=k;i<=n;i++)

#define rep(i,n) for(int i=0;i#define ford(i,n) for(int i=n;i;i--)

#define forkd(i,k,n) for(int i=n;i>=k;i--)

#define repd(i,n) for(int i=n;i>=0;i--)

#define forp(x) for(int p=pre[x];p;p=next[p])

#define forpiter(x) for(int &p=iter[x];p;p=next[p])

#define lson (o<<1)

#define rson ((o<<1)+1)

#define mem(a) memset(a,0,sizeof(a));

#define memi(a) memset(a,127,sizeof(a));

#define memi(a) memset(a,128,sizeof(a));

#define inf (2139062143)

#define f (100000007)

#define pb push_back

#define mp make_pair

#define fi first

#define se second

#define vi vector

#define pi pair

#define si(a) ((a).size())

typedef long

long ll;

typedef unsigned long

long ull;

ll mul(ll a,ll b)

ll add(ll a,ll b)

ll sub(ll a,ll b)

void upd(ll &a,ll b)

int read()

while(isdigit(ch))

return x*f;

}int a[1000000];

int main()

else r--;

++ans;

}cout0;}

紀念品分組(貪心 排序)

貪心演算法 先對陣列從小到大排序,用i 0,j n 1指標指向首尾元素 如果 a i a j w 則將 a i 單獨作為一組,指標j 如果 a i a j w,則將 a i 和 a j 分為一組,指標i j 如此重複直到 取完 所有元素。元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得...

紀念品分組

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

紀念品分組

time limit 1 sec memory limit 128 mb submit 4 solved 2 submit status web board 元旦快到了,校學生會讓樂樂負責新年晚會的紀念品發放工作。為使得參加晚會的同學所獲得 的紀念品價值相對均衡,他要把購來的紀念品根據 進行分組,但...