news 2026/5/9 21:21:21

华为OD机试真题2025双机位C卷 C语言 实现【挑选宝石】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
华为OD机试真题2025双机位C卷 C语言 实现【挑选宝石】

挑选宝石

2025华为OD机试双机位B卷 - 华为OD上机考试双机位B卷 100分题型

华为OD机试双机位C卷真题目录点击查看: 华为OD机试双机位C卷真题题库目录|机考题库 + 算法考点详解

题目描述

游乐园有一款互动游戏,游戏开始时会提供n个宝石,每个宝石都一个属性值a1,a2,…an.玩家在游戏前可以挑选x颗宝石,将这些宝石的属性值相乘组成玩家的属性值。游戏玩家需要y点属性值,请帮助游戏玩家计算有多少种计算方式。

输入描述

第一行:三个整数n,x,y

  • 第一个整数n(0 < n <20)表示宝石总数量。
  • 第二个整数x(0<x <=n),表示可以选择宝石个数
  • 第三个整数y,表示通过游戏需要的属性值

第二行:n个整数,a1,a2,…an(-100 < ai < 100),表示每个宝石的属性值。

输出描述

输出一个整数,表示玩家可以通过游戏的挑选方式的数量。

用例1

输入

4 2 8 2 -3 4 5

输出

3

题解

思路:二进制枚举

  1. n < 20数据量对应2^20比较小,可以采用二进制暴力枚举判断。
  2. 二进制枚举的规则:如果一个20位的二进制数,二进制为1的位置代表会选择对应宝石,例如101表示会选中第1和第3个宝石
  3. 枚举范围为[1, 2 ^ n -1], 对于每个枚举值先求出所有二进制为1的位置用数组position保存
    • 首先判断position的数量是否等于x,不等于直接跳过。
    • 将所有宝石的值进行相乘然后判断是否大于y,大于y的话直接结果+1。这里a的值范围比较大,非python用户尽量使用大的数据类型进行保存,防止溢出
  4. 输出结果。

c语言

#include <stdio.h> int main() { int n, x; long long y; scanf("%d %d %lld", &n, &x, &y); int ans[25]; // 假设 n 不会太大(<=20 很常见) for (int i = 0; i < n; i++) { scanf("%d", &ans[i]); } int res = 0; // 枚举所有非空子集 for (int mask = 1; mask < (1 << n); mask++) { int cnt = 0; // 已选元素个数 long long product = 1; // 当前乘积 for (int i = 0; i < n; i++) { // 判断第 i 位是否被选中 if (mask & (1 << i)) { cnt++; // 超过 x 个,直接剪枝 if (cnt > x) { break; } product *= ans[i]; } } // 必须刚好选 x 个 if (cnt == x && product >= y) { res++; } } printf("%d\n", res); return 0; }

相关链接

本题包含其它多语言实现,可以点击跳转实现:华为OD机试双机位C卷 - 挑选宝石 (C++ & Python & JAVA & JS & GO)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 23:48:36

AI证书的贬值与性价比冲突:2026年职场人的理性选择指南

01 市场现状与核心冲突 人工智能认证这个领域&#xff0c;现在真是五花八门。有行业报告粗略统计过&#xff0c;全球各种挂着“AI”名头的认证和短期课程&#xff0c;可能不下200种&#xff0c;价格也从几百块到上万块不等。 这种表面繁荣之下&#xff0c;其实有个挺明显的矛盾…

作者头像 李华
网站建设 2026/5/8 19:56:09

Open-AutoGLM流程紊乱紧急应对(附官方未公开的校准脚本)

第一章&#xff1a;Open-AutoGLM流程紊乱紧急应对概述当 Open-AutoGLM 系统在执行自动化推理任务时遭遇流程紊乱&#xff0c;可能导致任务阻塞、资源泄漏或输出异常。此类问题通常源于并发调度冲突、上下文状态丢失或模型调用链断裂。为保障系统稳定性&#xff0c;需建立快速识…

作者头像 李华
网站建设 2026/5/9 20:34:13

别再手动提交了!,一文看懂Open-AutoGLM智能请假发起全流程

第一章&#xff1a;告别手动提交&#xff0c;Open-AutoGLM智能请假全新启航在数字化办公日益普及的今天&#xff0c;繁琐的手动流程正被自动化技术逐步取代。Open-AutoGLM 作为一款基于大语言模型驱动的智能办公助手&#xff0c;率先将自然语言理解与企业审批系统深度融合&…

作者头像 李华
网站建设 2026/5/9 19:05:04

为什么你的AI对话总断连?Open-AutoGLM超时参数必须这样调!

第一章&#xff1a;为什么你的AI对话总断连&#xff1f;在构建AI对话系统时&#xff0c;频繁的连接中断是开发者常遇到的痛点。这不仅影响用户体验&#xff0c;还可能导致上下文丢失、请求超时等问题。连接中断的背后&#xff0c;往往涉及网络配置、会话管理机制以及后端服务稳…

作者头像 李华
网站建设 2026/5/9 8:37:04

人工智能数据中心构建的技术标准与招标要求

某部门发布人工智能数据中心招标提案 2025年10月17日 — 某部门宣布&#xff0c;现正受理关于开发人工智能数据中心的项目提案。 根据要求&#xff0c;提案项目必须包含超过100兆瓦的新增电力负载&#xff0c;以及至少5亿美元的资本支出。此外&#xff0c;该部门表示&#xff0…

作者头像 李华
网站建设 2026/5/2 14:36:59

基于单片机八位智能抢答器设计

一、设计背景与目标 在知识竞赛、课堂互动等场景中&#xff0c;传统抢答器存在反应慢、易作弊、功能单一等问题。基于单片机的八位智能抢答器&#xff0c;通过电子逻辑实现快速响应与公平裁决&#xff0c;适合电子类专业毕设课设&#xff0c;帮助学生掌握数字逻辑与人机交互技…

作者头像 李华