2023年华为OD机试(python)B卷-符合要求的结对方式

一、题目

题目描述:

用一个数组A代表程序员的工作能力,公司想通过结对编程的方式提高员工的能力,假设结对后的能力为两个员工的能力之和,求一共有多少种结对方式使结对后能力为N。

二、输入输出

输入描述:
5
1 2 2 2 3
4
第一行为员工的总人数,取值范围[1,1000]
第二行为数组A的元素,每个元素的取值范围[1,1000]
第三行为N的值,取值范围[1,1000]
输出描述:
4
满足结对后能力为N的结对方式总数。

三、示例

示例1 

输入输出示例仅供调试,后台判题数据一般不包含示例
输入:
5
1 2 2 2 3
4
输出:
4
说明:
满足要求的结对方式为:A[0]和A[4],A[1]和A[2],A[1]和A[3],A[2]和A[3]。

四、要求

时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K

五、解题思路

  1. 首先,我们需要统计数组arr中每个元素的出现次数,可以使用一个字典freq来实现,其中字典的键是元素的值,字典的值是元素的出现次数。
  2. 然后,我们遍历数组arr中的每个元素num,对于每个元素,我们计算与之配对后的能力值complement,即target - num
  3. 如果complement存在于字典freq中,说明存在一种配对方式使得两个员工的能力之和为target。此时,我们将字典freqcomplement对应的值加到计数器count上。
  4. 注意,如果complementnum相等,说明当前元素可以与自己配对,但是每个元素只能被计数一次,所以需要将计数器count减去1。
  5. 最后,结对方式总数为计数器count除以2(因为每对结对方式会被计算两次)。
  6. 返回计数器count作为结果,即满足结对后能力为target的结对方式总数。

六、参考代码 

# -*- coding: utf-8 -*-
'''
@File    :   2023-B-符合要求的结对方式.py
@Time    :   2023/12/28 00:56:22
@Author  :   mgc 
@Version :   1.0
@Desc    :   None
'''

def countPairings(n, arr, target):
    count = 0  # 计数器,用于记录满足结对后能力为target的结对方式总数

    # 创建一个字典,用于统计数组arr中每个元素的出现次数
    freq = {}
    for num in arr:
        freq[num] = freq.get(num, 0) + 1

    # 遍历数组arr中的每个元素
    for num in arr:
        complement = target - num  # 计算与当前元素配对后的能力值

        # 如果配对的能力值存在于数组arr中
        if complement in freq:
            count += freq[complement]  # 更新计数器,增加配对方式的数量

            # 如果配对的能力值与当前元素相等,需要将当前元素的出现次数减一
            if complement == num:
                count -= 1

    # 结对方式总数为计数器count除以2(因为每对结对方式会被计算两次)
    return count // 2


# 测试代码
n = int(input())  # 员工的总人数
arr = list(map(int, input().split()))  # 数组A的元素
target = int(input())  # 目标能力值N

result = countPairings(n, arr, target)
print(result)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

个人用户免费,亚马逊正式推出 AI 编程服务 CodeWhisperer

亚马逊于 2022 年 6 月以预览版的形式,推出了 AI 辅助编程服务 CodeWhisperer。2023年4月18日,亚马逊云科技宣布,实时 AI 编程助手 Amazon CodeWhisperer 正式可用,同时推出的还有供所有开发人员免费使用的个人版(Code…

深入理解Mysql MHA高可用集群搭建:从实验到实战

1. 简介 MHA(Master High Availability)是一个高效的开源MySQL高可用性解决方案。由日本开发者yoshinorim(前DeNA员工,现在Facebook)创建,MHA支持MySQL的主从复制架构,自动化主节点故障转移。当…

Lunix的奇妙冒险————权限篇

文章目录 一.什么是权限二.用户权限和类别。1.用户2.角色3.更换文件角色 三.文件的类别和对应权限1.文件的类别。2.文件属性权限1.权限说明。2.默认生成文件权限来源3.更改权限 3.文件的执行与删除 四.不同用户共同在一个目录下的权限。1.普通用户家目录2.在同一目录下文件的权…

springcloud中使用openfeign来优化接口调用

简单介绍在springcloud中使用openfeign来优化接口调用 目录 一、引入依赖二、为服务提供者编写openfeign接口三、服务消费者调用定义的openfeign接口四、项目结构五、日志级别配置1、通过配置类进行全局配置2、通过配置类进行局部配置3、通过配置文件配置 一、引入依赖 <!-…

工业信息采集平台 软件界面介绍

关键字&#xff1a;蓝鹏测控典型界面,蓝鹏测控交互界面,蓝鹏测控图形界面,蓝鹏测控历史界面,蓝鹏测控自定义界面 软件测控平台对UI程序界面&#xff0c;实现形式没有要求&#xff0c;也就是说&#xff0c;客户可以根据自己的需要设计任何样式的交互界面。 &#xff08;1&…

大数据前馈神经网络解密:深入理解人工智能的基石

文章目录 大数据前馈神经网络解密&#xff1a;深入理解人工智能的基石一、前馈神经网络概述什么是前馈神经网络前馈神经网络的工作原理应用场景及优缺点 二、前馈神经网络的基本结构输入层、隐藏层和输出层激活函数的选择与作用网络权重和偏置 三、前馈神经网络的训练方法损失函…

突破PHP disable_functions方法

1. 利用 LD_PRELOAD 环境变量 知识扫盲 LD_PRELOAD&#xff1a;是Linux系统的一个环境变量&#xff0c;它指定的*.so文件会在程序本身的*.so文件之前被加载。putenv()&#xff1a;PHP函数&#xff0c;可以设置环境变量mail()&#xff0c;error_log()&#xff1a;PHP函数&…

ERROR: No matching distribution found for torch==2.0.1解决方案

大家好&#xff0c;我是水滴~~ 本文主要介绍在安装 stable-diffusion-webui 时出现的 ERROR: No matching distribution found for torch2.0.1 问题的解决方案&#xff0c;希望能对你有所帮助。 《Python入门核心技术》专栏总目录・点这里 文章目录 问题描述解决方案离线安装 …

基于ssm潍坊理工学院就业信息网的设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本潍坊理工学院就业信息网就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数…

VSCode安装Go环境

VSCode安装Go 1.点击Go官网&#xff0c;根据自己环境下载go安装包&#xff0c;我这里为Windows 2.双击安装包&#xff0c;一直点击【Next】即可 VSCode配置Go基础环境 1.创建Go的工作目录: C:\Code\GoCode 2.创建Go的环境变量: GOPATH (1)右键【此电脑】&#xff0c;点击…

什么是骨传导耳机?骨传导能保护听力吗?

骨传导耳机是一种非常特殊的蓝牙耳机&#xff0c;它通过骨传导技术将声音直接传送到内耳。这种技术不同于传统耳机&#xff0c;它不通过空气传送声音&#xff0c;而是通过头骨的振动来传送声音。 并且骨传导耳机能够在一定程度上起到保护听力的作用&#xff0c;主要是因为它们不…

春款来啦~我先冲了

这款假两件设计的连帽风衣外套 宽松版型对身材包容性很强&#xff0c;韩系慵懒风颜色很舒服 时尚百搭怎么穿都好看系列 做了腰部可调节抽绳&#xff0c;想要修身一点的可以自己调节哈 袖口处也做了金属按扣调节&#xff0c;防风保暖 这件风衣也很好搭配&#xff0c;很经典…

PICKIT3下载器脱机烧写指导书

一&#xff0c; PICKIT3的联机烧写方法 PICKIT3的联机烧写与ICD2一致&#xff0c;只是需要在MPLAB IDEV840或者更高版本下使用PICKIT3。烧写时&#xff0c;从MPLAB IDE的菜单“PROGRAMMER——PICKIT3”&#xff0c;选中PICKIT3即可。 由于PICKIT3能提供的烧写电流比较小&#…

微软CEO纳德拉当选2023年度CEO,AI大模型崛起成重要趋势;Mixtral 8x7B 真的击败了 GPT 3.5 Turbo 吗?

&#x1f989; AI新闻 &#x1f680; 微软CEO纳德拉当选2023年度CEO&#xff0c;AI大模型崛起成重要趋势 摘要&#xff1a;2023年被认为是AI大模型崛起之年&#xff0c;微软CEO纳德拉凭借对AI的投资和领导力当选2023年度CEO。纳德拉将AI技术融入微软的产品和服务中&#xff0…

gin框架使用系列之四——json和protobuf的渲染

系列目录 《gin框架使用系列之一——快速启动和url分组》《gin框架使用系列之二——uri占位符和占位符变量的获取》《gin框架使用系列之三——获取表单数据》 上篇我们介绍了如何获取数据&#xff0c;本篇我们介绍一下如何返回固定格式的数据。 一、返回JSON数据 在web开发中…

Vue监听浏览器自带的复制事件并对复制内容进行修改

场景&#xff1a; 在使用鼠标右键或者ctrl c的时候。光标会自动换行。粘贴出来的数据光标应该在红色部分&#xff0c;却出现在了黑色部分。 方法一&#xff1a; html标签不要换行&#xff1b;css去除空格&#xff1b; white-space: nowrap;方法二&#xff1a; 使用函数对复…

请问仿写arkts摇杆功能,为什么我的代码,TouchType.Up 时候摇杆动画不能还原呢?请求大佬指点一下

仿照黑马的arkts 写个摇杆功能&#xff0c;但是为什么我的代码&#xff0c;TouchType.Up 时候摇杆动画不能还原&#xff0c; 请求大佬指点一下 import router from ohos.router import curves from ohos.curvesEntry Component struct ItemPage7 {// 小鱼坐标State fishX: nu…

vue data变量不能以“_”开头,否则会产生很多怪异问题

1、 比如给子组件赋值&#xff0c;子组件无法得到这个值&#xff08;也不是一直无法得到&#xff0c;设置后this.$forceUpdate() 居然可以得到&#xff09;&#xff0c; 更无法watch到 <zizujian :config"_config1"> </zizujian>this._config1 { ...…

XCTF-MISC1 文件内容遮挡

pdf 题目描述 题目分析 附件下载下来&#xff0c;是一张图片的pdf文件 调整图片透明度发现flag flag{security_through_obscurity}

Qt编写的exe程序上添加程序信息

1、qtcreator编写 在pro文件中添加如下信息 # 版本信息 VERSION 4.0.2.666# 图标 RC_ICONS Images/MyApp.ico# 公司名称 QMAKE_TARGET_COMPANY "Digia"# 产品名称 QMAKE_TARGET_PRODUCT "Qt Creator"# 文件说明 QMAKE_TARGET_DESCRIPTION "Qt …
最新文章