当前位置: 首页 > news >正文

华为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)

http://www.jsqmd.com/news/123482/

相关文章:

  • springboot基于Vue.js的在线智慧社区服务平台
  • 2025年最新成都补习班推荐Top5:本土优质机构精选,适配不同学习需求 - 深度智识库
  • 搜索研究文献的渠道有哪些:常用学术文献检索平台及获取途径汇总
  • Taro4.x 引入 taro-ui 组件库
  • 基于SpringBoot的设计素材网站系统
  • 10万奖金,58人晋级!这场3D打印大赛谁将脱颖而出?
  • 为什么90%的智慧城市项目失败?:Open-AutoGLM给出的3个关键优化路径
  • 是趋势还是内卷?网工运维转行网安,薪资与职业生涯的双重跃迁
  • 从对话到预判:Open-AutoGLM如何实现驾驶员意图理解的跨越式突破
  • 盲盒小程序抽赏功能全解析:技术逻辑与商业闭环
  • 2025年终总结:六面钻/包装线/封边机/开料机权威厂家推荐榜 - 深度智识库
  • 网络与信息安全考研宝典:全网最全备考指南,看这一篇就够了
  • Open-AutoGLM流程提速秘诀:9步变5步,性能提升背后的真相
  • Open-AutoGLM到底有多强?10家医院试点后病历归档错误率下降93%
  • Java三大特性之一——多态,零基础小白到精通,收藏这篇就够了
  • 基于SpringBoot的汽车配件仓储管理系统
  • 【元宇宙AI引擎新纪元】:Open-AutoGLM适配优化的7个不为人知的秘密
  • MySQL ERROR 1227 (42000)
  • 10个高效降AI率工具,继续教育学生必看!
  • 数字孪生与AutoGLM融合难题,90%工程师忽略的3个关键控制节点
  • springboot基于Vue在线考试管理系统
  • 448万台、近百亿元!前11个月我国3D打印机出口再创新高
  • 【工业智能控制新纪元】:Open-AutoGLM赋能数字孪生的7大应用场景
  • 网络安全基础精华总结:一文搞定100个核心概念
  • 2025年靠谱南阳短视频制作与推广公司排行榜,短视频推广怎么做 - mypinpai
  • 2025年靠谱黄精茶代加工供应商排行榜,精选黄精茶代加工优质供应商推荐 - myqiye
  • Open-AutoGLM数字孪生控制系统实战(从架构设计到部署落地)
  • 【收藏级】全面拆解GraphRAG:从原理到实践,大模型知识库升级必备
  • 零售连锁的设备管理:轻松掌控数千终端
  • springboot基于vue3的校园防诈骗宣传网站