当前位置: 首页 > news >正文

[NOIP2007 普及组] 纪念品分组--贪心算法

[NOIP2007 普及组] 纪念品分组

题目背景

NOIP2007 普及组 T2

题目描述

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

你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。

输入格式

n + 2 n+2 n+2 行:

第一行包括一个整数 w w w,为每组纪念品价格之和的上限。

第二行为一个整数 n n n,表示购来的纪念品的总件数 G G G

3 ∼ n + 2 3\sim n+2 3n+2 行每行包含一个正整数 P i P_i Pi 表示所对应纪念品的价格。

输出格式

一个整数,即最少的分组数目。

样例 #1

样例输入 #1

100 
9 
90 
20 
20 
30 
50 
60 
70 
80 
90

样例输出 #1

6

提示

50 % 50\% 50% 的数据满足: 1 ≤ n ≤ 15 1\le n\le15 1n15

100 % 100\% 100% 的数据满足: 1 ≤ n ≤ 3 × 1 0 4 1\le n\le3\times10^4 1n3×104 80 ≤ w ≤ 200 80\le w\le200 80w200 5 ≤ P i ≤ w 5 \le P_i \le w 5Piw
【分析】
贪心算法解决当前最优解;先排序然后判断是否满足条件;

#include <iostream>
#include <algorithm>
using namespace std;const int N = 30000l;
int value[N];
int num, n, w;int main()
{cin>>n>>w;num = n;for(int i=0; i<n; i++){cin>>value[i];}sort(value,value+n);int i=0, j=n-1;while(i<j){if(value[i]+value[j] <= w){i++;j--;num--;}else{j--;}}cout<<num;return 0;
}

相关文章:

  • 论文里点击如图?-?如何跳转到图片的题注
  • 探秘SpringBoot启动流程:原理解析与自定义扩展
  • Mongodb基础(node.js版)
  • C2_W2_Assignment_吴恩达_中英_Pytorch
  • 【简略知识】项目开发中,VO,BO,PO,DO,DTO究竟是何方妖怪?
  • 腾讯云幻兽帕鲁服务器如何安全下载WorldOption.sav文件?
  • 抖音视频批量下载软件|视频评论采集工具
  • 开源视频转码器HandBrake
  • Godot自定义控件样式语法解析
  • Java数据类型(八种基本数据类型 + 四种引用类型)、数据类型转换
  • 机器学习:模型评估和模型保存
  • 【软考】设计模式之访问者模式
  • Redis的主从搭建
  • Linux笔记--GCC
  • 全新2.0版本极其抽象的门(Spring Security)
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • CentOS从零开始部署Nodejs项目
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • IDEA 插件开发入门教程
  • Mithril.js 入门介绍
  • Python 基础起步 (十) 什么叫函数?
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 让你的分享飞起来——极光推出社会化分享组件
  • 深入浅出webpack学习(1)--核心概念
  • 使用 @font-face
  • 思维导图—你不知道的JavaScript中卷
  • 小程序测试方案初探
  • 一文看透浏览器架构
  • 移动端解决方案学习记录
  • 【干货分享】dos命令大全
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ​你们这样子,耽误我的工作进度怎么办?
  • ###C语言程序设计-----C语言学习(6)#
  • $GOPATH/go.mod exists but should not goland
  • (1)STL算法之遍历容器
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四)Android布局类型(线性布局LinearLayout)
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (转)setTimeout 和 setInterval 的区别
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET/C# 将一个命令行参数字符串转换为命令行参数数组 args
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .net打印*三角形
  • ::什么意思
  • ??javascript里的变量问题
  • @GetMapping和@RequestMapping的区别