题目名称 121. [NOIP 2007]纪念品分组
输入输出 group.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 11
题目来源 Gravatarsywgz 于2008-09-22加入
开放分组 全部用户
提交状态
分类标签
贪心 NOIP/CSP 模拟 基本
分享题解
通过:440, 提交:962, 通过率:45.74%
GravatarHyoi_0Koto 100 0.000 s 0.00 MiB C++
GravatarShirry 100 0.000 s 0.00 MiB C++
GravatarRegnig Etalsnart 100 0.000 s 0.00 MiB C++
GravatarYoungsc 100 0.000 s 0.00 MiB C++
Gravatar增强型图元文件 100 0.000 s 0.00 MiB C++
Gravatar增强型图元文件 100 0.000 s 0.00 MiB C++
Gravatar增强型图元文件 100 0.000 s 0.00 MiB C++
Gravatar增强型图元文件 100 0.000 s 0.00 MiB C++
Gravatar增强型图元文件 100 0.000 s 0.00 MiB C++
Gravatar增强型图元文件 100 0.000 s 0.00 MiB C++
本题关联比赛
07级noip练习1
小练习赛:B组
test1
NOIP2007普及组(复现)
关于 纪念品分组 的近10条评论(全部评论)
贪心策略 先排序再用指针从两端进行组合 出门左转P225,双倍经验 原代码都不用改
GravatarRichard
2019-07-09 09:33 13楼
水题,sort直接解决,只要判断何时结束循环即可
Gravatar牛掰格拉斯
2019-07-09 09:32 12楼
贪心直接过。。。。。。。。。。。。。。。。。
Gravatar没啥,随心
2019-07-06 21:09 11楼
蒟蒻300级留念!
GravatarChtholly
2017-11-08 17:24 10楼
输入输出文件名写错挂了一次mdzz
GravatarJustWB
2017-09-09 15:01 9楼
Gravatar加藤惠
2016-07-05 17:30 8楼
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main(){
freopen("group.in","r",stdin); //文件输入输出
freopen("group.out","w",stdout);
int allmax,allg,smin,smax,n; //定义变量 数组
cin>>allmax>>allg; //cin
int gifts[allg];
for(int i=0;i<allg;i++) //给数组赋值
{
cin>>gifts[i];
}
sort(gifts+0,gifts+allg);
/*
for(int x=0; x<allg; x++)
{
cout << gifts[x]<<endl;
}
*/
smin=0;
smax=allg-1;
for(n=0;smin<=smax;)
{
if(gifts[smin]+gifts[smax]<=allmax)
{
smin++;
smax--;
}
else
{
smax--;
}
n++;
}
cout<<n;
return 0;
}
Gravatarzero
2016-07-04 09:49 7楼
装箱问题。
这不是NP吗?
写了降序首次适应算法,有几个点比ans更优,不知道是不是我写挂了。
update:
没看见每组只能放两个
GravatarRapiz
2016-05-12 18:32 6楼
就是这么帅
GravatarWangQL.
2015-08-31 20:11 5楼
GravatarNBWang
2014-06-04 18:48 4楼

121. [NOIP 2007]纪念品分组

★   输入文件:group.in   输出文件:group.out   简单对比
时间限制:1 s   内存限制:128 MiB


【题目描述】

元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。
你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。

【输入格式】

输入包含n+2行:
第1行包括一个整数w,为每组纪念品价格之和的上限。
第2行为一个整数n,表示购来的纪念品的总件数。
第3~n+2行每行包含一个正整数pi(5<=pi<=w),表示所对应纪念品的价格。

【输出格式】

输出仅一行,包含一个整数,即最少的分组数目。

【输入样例】

100
9
90
20
20
30
50
60
70
80
90

【输出样例】

6

【限制】

50%的数据满足:l<=n<=15
100%的数据满足:1<=n<=30000,80<=w<=200