头歌:药剂稀释

2024-04-12 18:44
文章标签 头歌 稀释 药剂

本文主要是介绍头歌:药剂稀释,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

任务描述

本关任务:找出一个序列中的最长下降子序列其中的元素个数。

医院里有一种药剂,其可以稀释成不同的浓度供病人使用,并且对于已知浓度的该药剂,使用时只能稀释不能增加浓度。

由于这种药需求量较大,同一瓶药剂只能给某个病人以及排在他后面的若干人使用。不同的病人对药物的浓度要求可能不同。

现在为了最大限度的利用每一瓶药剂(不考虑容量),已知n个病人所需药物浓度的序列,请计算出一瓶药剂能最多使用的人数。

编程要求

在右侧编辑器中有一个函数Cal,它有两个参数arrn

arr中包含n个病人对药物浓度的要求。

请你在这个函数中补充代码,计算并输出一瓶药剂能最多使用的人数。

输入数据由评测系统读取,并传递给Cal函数。具体见测试说明

测试说明

平台会对你编写的代码进行测试:

测试输入: 6 0.7 0.9 0.6 0.8 0.8 0.4

预期输出: 4

每组输入有两行,第一行有一个数n,第二行的n个数为数组的内容。


开始你的任务吧,祝你成功!

#include <iostream>
#include <algorithm>
using namespace std;// 定义函数 Cal,用于计算浓度递增的最长子序列的长度
void Cal(double arr[], int n)
{// 定义数组 m 用于保存以每个元素结尾的最长子序列的长度int m[n], max = 0; // max 用于保存最长子序列的长度// 从数组末尾向前遍历for (int i = n - 1; i >= 0; i--){m[i] = 1; // 初始时,以每个元素结尾的最长子序列长度至少为 1,因为单个元素也是一个子序列// 从当前元素的右边开始向右遍历int k = i + 1; // k 始终为当前枚举 i 右边的一瓶药while (k < n){// 如果当前元素的浓度大于等于右边药品的浓度,则可以将右边药品加入子序列if (arr[i] >= arr[k]){m[i] = m[i] > m[k] + 1 ? m[i] : m[k] + 1; // 更新以当前元素结尾的最长子序列的长度}k++;}// 更新最长子序列的长度max = max > m[i] ? max : m[i];}// 输出最长子序列的长度printf("%d", max);
}

这篇关于头歌:药剂稀释的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/897930

相关文章

【深度学习 激活函数】激活函数:深度学习界的“魔法药剂”

大家好!今天我们来聊聊深度学习中的一个重要角色——激活函数。你是否曾经好奇过,为什么神经网络能像魔法一样识别图片、理解和生成文字?答案就在于这些神奇的激活函数! 激活函数:神经网络的“心跳” 想象一下,神经网络就像一个巨大的生物体,而激活函数就是它的心跳。没有心跳,生物体就无法生存;同样,没有激活函数,神经网络就无法正常工作。 激活函数的“魔法” 激活函数就像是给神经网络施加了魔法,让它们

头歌资源库(16)分苹果

一、 问题描述  二、算法思想         首先,我们可以初始化一个数组apple来记录每个孩子分配的苹果数量,将所有元素初始化为1,表示每个孩子至少分配到一个苹果。        然后,从左到右遍历评分数组ratings,判断当前孩子的评分与前一个孩子的评分的大小关系。若当前孩子的评分大于前一个孩子的评分,则将当前孩子分配的苹果数量设为前一个孩子分配的苹果数量加1,保证相邻孩子

2024头歌数据库期末综合(部分题)

目录 第7关:数据查询三 任务描述 知识补充 答案 第8关:数据查询四 任务描述 知识补充 答案 本篇博客声明:所有题的答案不在一起,可以去作者博客专栏寻找其它文章。 第7关:数据查询三 任务描述 本关任务: 人口普查rkpc数据库中hnpeople和hnyzbm两个数据表 湖南人口hnpeople数据表有城市cs、区县qx、人口rk等字段 数据如下所示

头歌资源库(14)残缺棋盘

一、 问题描述  二、算法思想   首先,将2^k × 2^k的棋盘划分为四个相等大小的子棋盘,定义为左上、左下、右上和右下四个子棋盘。 然后,根据残缺格的坐标,确定其中一个子棋盘是不完整的,即残缺子棋盘。假设残缺子棋盘是左上子棋盘。 接下来,分以下三种情况进行处理: 当k=1时,即棋盘大小为2×2时,直接填充序号即可。 当残缺子棋盘的坐标位于左上子棋盘的右下角时,将左上子棋盘的

头歌资源库(12)找第K小数

一、 问题描述 二、算法思想          可以使用快速排序算法来解决这个问题。        首先,选择一个基准元素,通常选择序列的第一个元素。        然后,将序列中小于等于基准元素的元素放在基准元素的左边,大于基准元素的元素放在基准元素的右边。        接着,递归地对左右两个子序列进行快速排序。        最后,当子序列的长度小于等于K时,返回第K个元素。

头歌大数据答案(自用)

第一关 # 命令行start-all.shnohup hive --service metastore & import org.apache.spark.sql.SparkSessionimport org.apache.spark.sql.functions.colimport org.apache.spark.sql.functions._object cleandata {

头歌资源库(11)分解2019

一、 问题描述 二、算法思想        首先,确定第一个整数的范围,由于不能包含数字2和4,所以第一个整数的取值范围为[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 6, 7, 8, 9]。       然后,在确定第一个整数的情况下,确定第二个整数的取值范围,由于不能包

头歌资源库(10)拼数字

一、 问题描述 二、算法思想  初始化一个长度为10的数组count,用于记录卡片中每个数字的数量。 从1开始依次尝试拼出正整数,直到无法拼出下一个数为止。 对于每个尝试拼出的正整数,遍历其每一位的数字,检查该数字在count中是否还有剩余。如果有剩余,则将该数字的数量减1,并继续拼接下一位数字。 如果所有位数都成功拼接完毕,则说明可以拼出该正整数,将其保存起来,并继续尝试拼

头歌资源库(4)求组合问题

一、 问题描述    二、算法思想        假我们要从n个自然数中选取r个数的组合。        首先,我们可以选取最大的数n作为一个组合中的数,然后从剩下的n-1个数中选取r-1个数的组合,这样就可以得到一个以n开头的组合。        然后,我们再从剩下的n-1个数中选取r个数的组合,这样就可以得到一个不以n开头的组合。        递归终止的条件是当r等于1时

头歌资源库(5)求阶乘问题

一、 问题描述          请输入一个50至100之间的整数n,求解n!  二、算法思想  输入一个50至100之间的整数n。声明一个变量result,并将其初始化为1,用于保存n的阶乘。使用一个循环,从1到n,循环变量为i。在循环中,将result与i相乘,将结果保存到result中。循环结束后,result即为n的阶乘。输出result作为n的阶乘的结果。 三、