华为机考真题 -- 信道分配

题目描述:

算法工程师小明面对着这样一个问题,需要将通信用的信道分配给尽量多的用户,

信道的条件及分配规则如下:
1) 所有信道都有属性:”阶”。阶为 r 的信道容量为 2^r 比特;
2) 所有用户需要传输的数据量都一样:D 比特;
3) 一个用户可以分配多个信道,但每个信道只能分配给一个用户;
4) 只有当分配给一个用户的所有信道的容量和大于等于D时,用户才能传输数据;
给出一组信道资源,最多可以为多少用户传输数据?

输入描述:

第一行,一个数字 R。R 为最大阶数,0<=R<20;
第二行,R+1 个数字,用空格隔开,代表每种信道的数量 Ni,按照阶的值从小到大排列,0<=i<=R, 0<=Ni<1000; 
第三行,一个数字 D,D 为单个用户需要传输的数据量,0<D<1000000;

输出描述:

一个数字,代表最多可以供多少用户传输数据。

示例1:

输入
5
10 5 0 1 3 2
30

输出
4
说明:
最大阶数为 5. 信道阶数:0 1 2 3 4 5
信道容量:1 2 4 8 16 32
信道个数:10 5 0 1 3 2
单个用户需要传输的数据量为 30
可能存在很多分配方式,举例说明:
分配方式 1:
1) 32*1 = 32
2) 32*1 = 32
3) 16*2 = 32
4) 16*1 + 8*1 + 2*3 = 30
剩下 2*2 + 1*10=14 不足以再分一个用户了。
分配方式 2:
1) 16*1 + 8*1 + 2*3 = 30
2) 16*1 + 2*2 + 1*10 = 30
3) 32*1 = 32
4) 32*1 = 32
分配方式 3:
1) 16*1 + 8*1 + 2*3 = 30
2) 16*1 + 2*2 + 1*10 = 30
3) 16*1 + 32*1 = 48
4) 32*1 = 32
恰好用完。

C++源码:

#include <iostream>
#include <unordered_map>
#include <cmath>
using namespace std;int user(int R, vector<int>& Ni, int D) {int idx = 0;int maxUser = 0;unordered_map<int, int> mapping;int n = R + 1;while (idx < n) {mapping[pow(2, idx)] = Ni[idx];idx++;}for (auto& item : mapping) {if (item.first >= D) {maxUser += item.second;item.second = 0;}}long long x = 0;for (auto& j : mapping) {x += static_cast<long long>(j.first) * j.second;}maxUser += static_cast<int>(x / D);return maxUser;
}int main() {int R;cin >> R;vector<int> Ni(R+1);for (int i = 0; i <= R; ++i) {cin >> Ni[i];}int D;cin >> D;int maxUser = user(R, Ni, D);cout << maxUser << endl;system("pause");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

区间贪心

目录 1.贪心算法的思想 2.区间贪心算法常用的一些题目类型 1.选择最多不相交区间问题 P2970 [USACO09DEC] Selfish Grazing S 1.思路分析 2.上代码 2.区间选点问题 P1250 种树 1.题目 2.方法一 1.代码解释 3.方法二 3.区间合并问题 P2434 [SDOI2005] 区间 1. 思路…

中科海讯 C++初级研发工程师笔试题目

C语言中的const关键字有什么作用&#xff1f;为什么要使用const关键字&#xff1f; 1 const修饰的变量将会被放到常量区&#xff0c;避免被意外的改动。 const修饰的常量比#define修饰的有更多的优势&#xff0c;比如可以调试&#xff0c;类型检查等 2 const修饰的参数可做输入…

Java集合面试题

Java集合框架 1、List、Set、Map的区别2、ArrayList、LinkedList、Vector区别3、为什么数组索引从0开始&#xff0c;而不是从1开始&#xff1f;4、ArrayList底层的实现原理5、红黑树、散列表6、HashMap的底层原理7、HashMap的put方法具体流程8、HashMap的扩容机制9、HashMap是怎…

南方科技大学马永胜教授给年轻人使用AI工具上的建议

摘要 - 1. AI的未来&#xff0c;是机器人和机器人之间的合作&#xff1b; 2. 行业的发展方向是需求决定的&#xff0c;不要做同质化的发展&#xff0c;要做专/精/特/新&#xff1b; 3. 新质生产力 &#xff08; 科学技术革命性突破 生产要素创新型配置 产业深度转型升级&…

java通过poi-tl导出word实战详细步骤

文章目录 与其他模版引擎对比1.引入maven依赖包2.新建Word文档exportWprd.docx模版3.编写导出word接口代码4.导出成果 poi-tl是一个基于Apache POI的Word模板引擎&#xff0c;也是一个免费开源的Java类库&#xff0c;你可以非常方便的加入到你的项目中&#xff0c;并且拥有着让…

贪心算法-以高校教材管理系统为例

1.贪心算法介绍 1.算法思路 贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行&#xff0c;根据某个优化测度&#xff0c;每一 步都要确保能获得局部最优解。每一步只考虑一 个数据&#xff0c;其选取应该满足局部优化的条件。若下 一个数据和部分最优解连在一起…

Pix4Dmapper:无人机测绘的革命性工具

在现代测绘和地理信息系统&#xff08;GIS&#xff09;领域&#xff0c;Pix4Dmapper无疑是一款革命性的工具。作为一名长期使用这款软件的用户&#xff0c;我深深感受到它在工作中的重要性和便利性。Pix4Dmapper不仅仅是一款软件&#xff0c;更是测绘工作者的得力助手&#xff…

285个地级市出口产品质量及技术复杂度(2011-2021年)

出口产品质量与技术复杂度&#xff1a;衡量国家竞争力的关键指标 出口产品质量是衡量国内企业生产的产品在国际市场上竞争力的重要标准。它不仅要求产品符合国际标准和目标市场的法律法规&#xff0c;而且需要保证产品质量的稳定性和可靠性。而出口技术复杂度则进一步体现了一…

新一代信息技术及应用

关于云计算的描述不正确的是&#xff08; &#xff09;。 A 云计算可以通过网络连接&#xff0c;用户通过网络接入“云”中并获得有关的服务&#xff0c;“云”内节点之间也通过内部的网络相连 B 云计算可以快速、按需、弹性服务&#xff0c;用户可以按照实际需求迅速获取或释放…

[Python学习篇] Python面向对象——类

面向对象是什么&#xff1f; 面向对象&#xff08;Object-Oriented Programming&#xff0c;简称OOP&#xff09;是一种编程范式&#xff0c;它使用“对象”来设计应用程序和计算机程序。OOP的核心概念包括类&#xff08;Class&#xff09;、对象&#xff08;Object&#xff09…

批量下载手机中APP程序中文件

需求 利用 adb pull 下载手机中app的某目录 adb pull 命令本身不支持直接下载整个目录&#xff08;文件夹&#xff09;及其所有子目录和文件作为一个单一的操作。但是&#xff0c;可以通过一些方法来间接实现这一目的。 方法 1. 首先将要下载的目录进行 tar 打包 # 在 And…

Python面试题:Python 中的 `property` 函数有什么用?

在 Python 中&#xff0c;property 函数用于创建和管理类中的属性。它允许你将方法转换为属性&#xff0c;这样你可以像访问变量一样访问这些方法。这对于控制属性的访问和修改非常有用&#xff0c;因为它允许你在属性访问时执行额外的逻辑&#xff08;如验证或计算&#xff09…

光通信领域常见的会议和期刊总结

在高速光通信小组待了一年&#xff0c;对我们领域主要的会议和期刊也有了一定的了解&#xff0c;所以总结一下我们可以投的期刊或会议有哪些。会议一般有OFC、ECOC、CLEO、OECC、ACP等&#xff0c;期刊则有OE、OL、PTL、JLT、PJ、AO、JOSA等&#xff0c;下面简单介绍一下。 先…

【atcoder】习题——位元枚举

题意&#xff1a;求i&M的popcount的和&#xff0c;i属于0……N 主要思路还是变加为乘。 举个例子N22&#xff0c;即10110 假设M的第3位是1&#xff0c;分析N中&#xff1a; 00110 00111 00100 00101 发现其实等价于 0010 0011 0000 0001 也就是左边第4位和第5…

算法学习笔记(8.1)-动态规划入门

目录 问题特性&#xff1a; 最优子结构&#xff1a; 代码示例&#xff1a;&#xff08;动态规划最优子结构&#xff09; 上述最小代价爬楼梯的运行过程&#xff1a; 代码示例&#xff1a; 无后效性&#xff1a; 解析&#xff1a; 具体过程图示如下&#xff1a; 具体的…

如何为IP申请SSL证书

目录 以下是如何轻松为IP地址申请SSL证书的详细步骤&#xff1a; 申请IP证书的基本条件&#xff1a; 申请IP SSL证书的方式&#xff1a; 确保网络通信安全的核心要素之一&#xff0c;是有效利用SSL证书来加密数据传输&#xff0c;特别是对于那些直接通过IP地址访问的资源。I…

使用 Azure DevOps Pipelines 生成 .NET Core WebJob 控制台应用 CI/CD

Web 应用程序通常需要作为后台任务运行的进程&#xff0c;并在特定时间间隔进行计划或在事件中触发。它们不需要花哨的 IO 接口&#xff0c;因为重点是过程而不是输出。Azure WebJobs 提供了出色的支持&#xff0c;通常在云环境中通过 Web 控制台应用程序来实现此目的。WebJob …

企业数字化转型中的低代码开发平台应用:释放创新潜能

随着信息技术的飞速发展&#xff0c;企业数字化转型已成为行业趋势。在这场转型浪潮中&#xff0c;低代码开发平台以其独特的优势&#xff0c;成为众多企业实现快速迭代、高效创新的得力助手。本文将深入探讨低代码开发平台在企业数字化转型中的应用&#xff0c;以及如何帮助企…

Mac平台虚拟机 Parallels Desktop v19.4.1,支持M1/M2/M3芯片组

Parallels Desktop for Mac是功能强大灵活度高的虚拟化方案&#xff0c;无需重启即可在同一台电脑上随时访问Windows和Mac两个系统上的众多应用程序。从仅限于PC的游戏到生产力软件&#xff0c;Parallels Desktop都能帮您实现便捷使用。Parallels Desktop 是一款专业的Mac虚拟机…

Docker搭建kafka+zookeeper以及Springboot集成kafka快速入门

参考文章 【Docker安装部署KafkaZookeeper详细教程】_linux arm docker安装kafka-CSDN博客 Docker搭建kafkazookeeper 打开我们的docker的镜像源配置 vim /etc/docker/daemon.json 配置 { "registry-mirrors": ["https://widlhm9p.mirror.aliyuncs.com"…