题目描述

小米食堂每年都会举办一次厨艺大赛,假设参赛的厨师一共有n位(n < 1000),比赛结束后没有公布评分,但是站在领奖台上的一排厨师中每位厨师都能看到与自己相邻的厨师(左或者右)里评分比自己低(看不到比自己分数高的人的分数)的评分。比赛结束之后要发奖金,以1K为单位,每位厨师至少会发1K的奖金,另外,如果一个厨师发现自己的奖金没有高于比自己评分低的厨师的奖金,就会不满意,作为比赛组织方,小米食堂至少需要发放多少奖金才能让所有厨师满意。

输入描述:

每组数据为n+1个正整数单空格分割,其中第一个数为参赛厨师的人数,后面n个数为每位厨师的得分(0-100)

输出描述:

输出至少需要多少K的奖金

输入例子1:

10 60 76 66 76 85 55 61 71 84 62

输出例子1:

20

算法

这题和【leet-code】542. 01 矩阵这题的解法一模一样,而且这题还更简单些。思路还是有两种,BFS和两次动态规划。

动态规划

由于某一个位置的厨师获得的奖金是和两遍都有关的,即要比左右相邻位置上的奖金更高。为此,从左往右遍历更新后,还要从右往左遍历更新。直接看代码,注释很清楚。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main()
{// 初始化变量int N;scanf("%d", &N);// prize[i]对应第i位厨师的奖金,初始化为1;score[i]对应第i位厨师的评分vector<int> prize(N, 1), score(N); for (int i = 0; i < N; i++){scanf("%d", &score[i]);// 在输入评分的时候也开始从左往右的比较,如果当前位置的厨师比左边位置的厨师评分高,那么应该加1if (i != 0 && score[i] > score[i-1]){prize[i] = prize[i-1] + 1;}}// 从右往左开始比较,由于最后一位厨师只受左边厨师的影响,所以只需从倒数第二位厨师开始for (int i = N - 2; i >= 0; i--){/* 如果当前位置的厨师评分比右边厨师评分高,那么应该有个比较,为什么是比较,而不是像从左往右的时候,直接加1呢?想象厨师评分如下: 1 2 3 4 2,那么倒数第二位厨师的奖金应该为max(4, 1+1) = 4,如果没有比较仅是加1那么倒数第二位厨师获得的奖金为2了,那就错了。*/if (score[i] > score[i+1])prize[i] = max(prize[i], prize[i+1] + 1);}// 将所有厨师的应得奖金累加int total = 0;for (int i = 0; i < N; i++)total += prize[i];printf("%d\n", total);return 0;
}

BFS

这题我没用BFS做,但我觉得大致的思路应该是再输入所有的评分后,然后遍历令比相邻位置评分都低的位置入队。然后从队列弹出位置比较评分情况然后更新左右两端,若有更新,将更新的位置入队,重复上述操作直到队列为空。

转载于:https://www.cnblogs.com/shayue/p/10541553.html

【小米机试】厨艺大赛奖金相关推荐

  1. 2019届小米秋招笔试题第一题_厨艺大赛奖金

    1.题目描述   小米食堂每年都会举办一次厨艺大赛,假设参赛的厨师一共有n位(n < 1000),比赛结束后没有公布评分,但是站在领奖台上的一排厨师中每位厨师都能看到与自己相邻的厨师(左或者右) ...

  2. 小米2019秋招笔试真题--厨艺大赛奖金

    小米食堂每年都会举办一次厨艺大赛,假设参赛的厨师一共有n位(n < 1000),比赛结束后没有公布评分,但是站在领奖台上的一排厨师中每位厨师都能看到与自己相邻的厨师(左或者右)里评分比自己低(看 ...

  3. 从《江南百景图》厨艺大赛说起,聊聊博弈和“奶油系统”

    一个俗套的活动 几天前,一款新开服的移动端游戏<江南百景图>推出了第一个活动:厨艺大赛. 活动的大致规则如下:玩家需要把各种材料在客栈兑换成香料,再在地图中找到御厨,把香料提供给他们做菜, ...

  4. 熹妃传服务器维护10.16,熹妃传2016最新版厨艺大赛攻略全解

    以下就是小编为大家带来的熹妃传2016最新版厨艺大赛攻略全解: 皇后风寒 辣子鸡丁:鸡肉,辣椒,葱 油盐酱糖 大火 皇上脉象虚浮 清炖狮子头:猪肉,鸡蛋,白菜 水盐 中火 青松绿韭古嘉蔬 砂锅豆腐:豆 ...

  5. 2023华为OD机试备考攻略 以及题库目录分值说明 考点说明

    刷题库,刷题库 刷题库.重要的事情说三遍!!!!!!!!!!!!!!!!!!!!!! 要刷有多种语言的实现的题库,一种语言看不懂可以换另一种语言,而且可以结合起来去重!!! 类似下面这种的题库: 华为 ...

  6. 华为机试(JAVA)真题Od【A卷+B卷】

    各语言题库: [Python+JS+Java合集][超值优惠]:Py/JS/Java合集 [Python]:Python真题题库 [JavaScript]:JavaScript真题题库 [Java]: ...

  7. 华为机试(Python)真题Od【A卷+B卷】

    各语言题库: [Python+JS+Java合集][超值优惠]:Py/JS/Java合集 [Python]:Python真题题库 [JavaScript]:JavaScript真题题库 [Java]: ...

  8. 华为OD机试2023年最新题库(JAVA、Python、C++)

    我是一名软件开发培训机构老师,我的学生已经有上百人通过了华为OD机试,学生们每次考完试,会把题目拿出来一起交流分享. 2023年5月份题库已经更新为OD统一考试(B卷),题库由三部分组成: 1.202 ...

  9. 华为OD机试真题2023(JavaScript)

    华为机试题库已由2022版换为2023版   华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100分,第三道为中等或困难题,分值为200分.总分为400分,150分钟考试时间.之前通过为1 ...

最新文章

  1. Python变量名的定义规则与定义方式
  2. php在線評論,php在線生成pdf筆記 | 學步園
  3. leetcode 215. 数组中的第 K个最 大的元素(堆排序,C语言)
  4. windows设备管理器
  5. curl: (52) Empty reply from server
  6. jwt 长度_跟我一起学.NetCore之WebApi接口裸奔有风险(Jwt)
  7. python基础之socket
  8. Vue3动态路由与路由守卫
  9. postman使用手册
  10. 已解决ModuleNotFoundError: No module named ‘frontend‘
  11. 学习Python第5天
  12. opengl之glScalef()函数
  13. 转换罗马数字,输入一串数字字符串,将其转化为希腊字符串。
  14. 技嘉1080显卡体质测试软件,【技嘉GTX1080评测】突破屏障 技嘉GTX 1080 G1 Gaming评测_技嘉 GTX 1080 G1 Gaming 8G_显卡评测-中关村在线...
  15. 捷信消费金融十年:巨轮转向,海阔天空
  16. 成功解决问题LINK : fatal error LNK1181: 无法打开输入文件“m.lib”error: command ‘D:\\Program Files\\Microsoft Visu
  17. 二分法查找 (长沙戴维营教育)
  18. h5生成带参数的小程序二维码,在小程序上获取生成的参数验证
  19. 解决tomcat 启动 An incompatible version [1.2.14] of the APR based Apache Tomcat Native library 错误
  20. 读书笔记:《亿级流量网站架构核心技术 -- 跟开涛学搭建高可用高并发系统》

热门文章

  1. 【C#】简单二维码制作和打印
  2. python中函数不包括参数函数二阶导数公式_请问参数方程确定的函数的二阶导数公式的详细推导过程?...
  3. [Angular] 使用 ng-alain
  4. SM2加密解决java与iOS端加解密不配套问题
  5. 基于java(springboot)网吧管理系统(java毕业设计)
  6. Echarts学习之十一:地理坐标系geo
  7. java 使用onvif协议 PTZ 登录认证,获取摄像头位置, 控制摄像头转动,digest认证,拍照截图
  8. 【分治法】输油管道问题
  9. 人工智能Java SDK:英文翻译为德文
  10. 白内障并发症不容忽视