公号:嵌入式未来 《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj 《嵌入式软件笔试-2023年真题汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm 通过率:第一题95%,第二题92%,第三题18%(没有附上) 3、安装太阳能板利润最大化 某公司计划在A地区选择一片区域投资建设太阳能发电站。 由于太阳能发电与地形、光照等自然条件强相关,因此在建设前,需要先进行建站选址、确定安装大阳能板的数量,让发电利润最大。 发电站每年的利润可以用以下公式计算 其中: Ki:表示第i个太阳能板的年发电收入。与太阳能板安装位置的自然条件 (光照等) 有关。 N: 表示太阳能板总数量 C: 表示平均每个太阳能板每年的支出费用(老化损耗、维修等) ,取固定值: 5。 整个A地区是一个矩形区域。 前期技术人员,按照一块太阳能板覆盖的面积,将A地区内部划分为 m*n 个地块。提前测并计算出每一个地块的年发电收入,使用 m*n 的发电收入矩阵表示。 为了减少管理成本,充分利用土地,必须选择一个 矩形区域 进行排列安装。 请实现功能,求出发电站应安装多少块太阳能板,年利润最大,最大为多少。 输入 第一行包含两个正整数: m、n,空格分隔。表示A地区分成的 m * n 个地块;0<m、n<1024。 后续 n行,每行 m 个正整数,空格分隔。表示每个小块区域的太阳能板年发电收入。0<= 收入<100. 输出 两个整数值,空格分隔。第一个值表示安装的太阳能板总量,第二个值表示最大利润。 注意: 1、如果存在最大利润相同的情况,则输出太阳能板总量较小的结果。 2、如果所有地块利润都是负数,则需选择损失最少的那个地块,安装一块太阳能板。 样例1 输入: 3 2 4 10 7 3 2 9 输出: 4 8 解释: 4 10 7 3 2 9 选择的是: 10、7、2、9 这一正方形区域的 4 个地块。利润是: (10 + 7 + 2 + 9)- (4 * 5) = 8。 样例2 输入: 2 2 1 2 3 4 输出: 1-1 解释:每个地块的利润都是负数,则选择损失最小的一块。 1、获取网络忙时数据 工程师小王想要从海量的网络数据中,筛选出忙时数据。由于是海量数据,小王没办法对海量数据进行排序,再取topN的忙时数据(将数据从大到小排序,取前N个)。聪明的小王想到了使用固定大小的优先级队列来进行数据筛选。为了场景简化,我们用正整数集来表示海量的网络数据,同时只取N个忙时数据,也即只取N个最大的正整数。针对每一批数据输入,单独输出一行结果,直接将N个正整数拼接完完整的一行字符串输出即可。 输入 第一行是正整数N和M,N为忙时个数,取值范围[1,24], M为输入的数据行数,范围[1,1000]; 接下来M行,每行两个正整数A,B,以空格分隔,表示有A个重复的正整数B,A、B的取值范围[1,2147483647],如 3 5 1 5 6 3 2 2 5 4 1 6 输出 输出每增加一批数据对应的队列结果,直接将队列里的所有数据集从大到小拼接成字符串输出。 如上例输入的输出为: 第一次输入1个5,则队列输出为5 第二次输入6个3,则队列输出为533 第三次输入2个2,则队列输出为533 第四次输入5个4,则队列输出为544 第五次输入1个6,则队列输出为654 所以最终的输出结果为: 5 533 533 544 654 样例1 输入: 1 3 2 3 1 6 7 4 输出: 3 6 6 解释: 只保留一个忙时 第一次输入2个3,则队列输出为3 第二次输入1个6,则队列输出为6 第三次输入7个4,则队列输出为6 所以最终输出结果为 3 6 6 #include <iostream>#include <queue>#include <vector>using namespace