题目描述

有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

输出

4
0

说明

第一只小熊吃了第5颗糖
第二只小熊吃了第4颗糖
第二只小熊吃了第3颗糖
第二只小熊吃了第1颗糖

这是一道简单的贪心题目,每次战斗力最大的熊吃能量最高的食物即可,用一个数组记录食物是否被吃。要特别注意,最后输出的时候需要原来的顺序,所以要将原来的顺序记录下来

这里多次使用到自定义排序算法,推荐C++11中的lamda表达式。

#include <iostream>
#include <algorithm>
using namespace std;
const int N = 200;
typedef pair<int, int> PII;
int main()
{int n, m;int candy[N];bool eaten[N] = { false };       // 标记糖果是否被吃PII bear[N];cin >> n >> m;for (int i = 0; i < m; i++) {cin >> candy[i];}for (int i = 0; i < n; i++)cin >> bear[i].first >> bear[i].second;sort(candy, candy + m, greater<int>());sort(bear, bear + n, [](const PII& a, const PII& b) {return a.first > b.first; });for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (candy[j] <= bear[i].second && !eaten[j]) {bear[i].second -= candy[j];eaten[j] = true;}}}for (int i = 0; i < n; i++) {cout << bear[i].second << endl;}
}

2018拼多多校招笔试贪心编程题小熊吃糖详解相关推荐

  1. 拼多多校招内推编程题3 六一儿童节

    题目 六一儿童节,老师带了很多好吃的巧克力到幼儿园.每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目.老师的目标是 ...

  2. 拼多多校招内推编程题1 最大乘积

    题目 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出描述: 满足条件的最大乘积 输 ...

  3. 拼多多校招内推编程题2 大整数乘法

    题目 有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示.不能用系统自带的大整数类型. 输入描述: 空格分隔的两个字符串,代表输入的两个大整数 输出描述: 输入的乘积,用字符串表示 ...

  4. 2018 拼多多校招贪心算法题

    题目描述 六一儿童节,老师带了很多好吃的巧克力到幼儿园.每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目.老师的目 ...

  5. 2018 拼多多 校招真题 最大乘积

    最大乘积 时间限制:1秒 空间限制:32768K 热度指数:8197 校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE. 题目描述 给定一个无序数组,包含正数. ...

  6. 2014 微软校招笔试答案 编程题

    上午参加完微软校招笔试,最后编程题的代码,仅供参考 #include <iostream> using namespace std; struct Node { Node *next;   ...

  7. 吉比特2018春招技术类笔试试卷编程题 - 题解

    吉比特的编程题倒是不难,但是它的选择题和填空题是真的多... 由于没有拍题目,所以我就按照我的记忆来描述一下题目了. 第一题 题目 判断两个数,换成二进制格式,输出多少个位置不一样 解析 这题很基础, ...

  8. 【编程笔试】美团2021校招笔试-通用编程题第4场(附思路及C++代码)

    导览 练习地址 小团无路可逃 小团的神秘暗号 小团的选调计划 小团的默契游戏 总结 练习地址 点此前往练习 小团无路可逃 小团惹小美生气了,小美要去找小团"讲道理".小团望风而逃, ...

  9. 2019网易校招笔试算法编程题——小易橡皮泥

    (2018.9.8 15:00--17:00) (哇这题花了我40分钟(也没做出来)!直接害得我后面问答题来不及写!) 以下为题目的大概描述: 小易买了一块只有黑色(b)和白色(w)的橡皮泥(当作字符 ...

最新文章

  1. boost::safe_numerics模块测试 constexpr 转换
  2. [URAL1962]并查集
  3. 51Nod-1080 两个数的平方和【暴力法】
  4. Euler Tour Tree与dynamic connectivity
  5. 什么是迁移学习 (Transfer Learning)?这个领域历史发展前景如何?【文末彩蛋】...
  6. UOS系统JAVA应用在任务栏显示类名的问题跟踪调用
  7. Hvv近期0day总结四
  8. 软考高级系统架构设计师:论文万能模版
  9. android反编译工具推荐,Android反编译的工具集合
  10. 找不到硬盘分区怎么办
  11. 量化投资学习——A股H股套利年化100%
  12. android7.x Launcher3源码解析(2)---框架结构
  13. Cell Reports:青年发育过程中脑血流与功能磁共振ALFF耦合
  14. 墙裂推荐!看完全面掌握,最详细的 Docker 学习笔记总结(2021最新版)
  15. 支持WIN7的VSCode版本
  16. 5g基站服务器需要芯片吗,华为发布全球首款5G基站核心芯片
  17. ZBlog源码资源站整站打包-带天兴娱乐资源主题+墨初用户中心插件
  18. 软件配置管理基线解释
  19. 论文阅读:Instance-aware Semantic Segmentation via Multi-task Network Cascades
  20. 基于shibboleth的分布式认证之IDP配置

热门文章

  1. 常用计算机系统包括,常用的保护计算机系统的方法有()。
  2. 图表绘制与处理的常用软件
  3. 数据分析与挖掘(一)误差与精度
  4. R︱sparkR的安装与使用、函数尝试笔记、一些案例
  5. 大白话5分钟带你走进人工智能-第33节神经网络和神经元概念(1)
  6. [2022 强网杯] devnull 复现
  7. cordova 图标设置
  8. 解决ubuntu下外接2k显示器却无法调2k分辨率问题
  9. 如何在EDUIS中导出ETL字幕模板_Arctime Pro字幕软件 2.0 简单强大高效的跨平台字幕制作软件...
  10. 人民币为什么 不继续升值