CSP 2024 入门级第一轮(88.5)

4.

以下哪个序列对应数字 00 至 88 的 44 位二进制格雷码(Gray code)?( )

  1.  A. 

    0000, 0001, 0011, 0010, 0110, 0111, 0101, 1000

     B. 

    0000, 0001, 0011, 0010, 0110, 0111, 0100, 0101

     C. 

    0000, 0001, 0011, 0010, 0100, 0101, 0111, 0110

     D. 

    0000, 0001, 0011, 0010, 0110, 0111, 0101, 0100

正解:D

错解:A 

原因:首先,格雷码具有以下性质:

  1. 相邻两个编码只能有一位不同。
  2. 首尾两个编码视作相邻,也只能有一位不同。
  3. 同一编码不能重复出现。
  • A 选项:0111 和 0101 有两位不同(从右往左数第 2 位和第 3 位),不满足相邻两个编码只能有一位不同的性质,所以 A 选项错误。
  • B 选项:0111 和 0100 有两位不同(从右往左数第 1 位和第 3 位),不满足相邻两个编码只能有一位不同的性质,所以 B 选项错误。
  • C 选项:0110 和 0000 有三位不同(从右往左数第 1 位、第 2 位和第 4 位),不满足首尾两个编码只能有一位不同的性质,所以 C 选项错误。
  • D 选项:该序列中相邻两个编码都只有一位不同,且首尾两个编码 0000 和 0100 也只有一位不同,同时没有重复的编码,满足格雷码的所有性质,所以 D 选项正确。

17-5

如果输入的 cost 数组为 ={10,15,30,5,5,10,20},程序的输出为()。

 A. 25

 B. 30

 C. 35

 D. 40

正解:B

错解:A 

原因:compute 函数实现了一个DP的逻辑:

dp[i] 表示处理到第 i 个元素时的最小成本(cost 数组)。

状态转移方程:dp[i] = min(dp[i-1], dp[i-2]) + cost[i-1] ,即第 i 步的最小成本,是 前 1 步最小成本 和 前 2 步最小成本 中的较小值,加上当前元素的成本(cost[i-1] 是因为数组下标从 0 开始 )。

返回 min(dp[n], dp[n-1]) ,即处理完所有元素后,最后一步 和 倒数第二步 的最小成本中的较小值。(打擂台)

2. 代入数据计算

输入 cost 数组为 [10, 15, 30, 5, 5, 10, 20] ,n = 7 ,然后打一个表逐步计算 dp 数组的值:

icost[i-1]dp[i] = min(dp[i-1], dp[i-2]) + cost[i-1]dp 数组值
110dp[1] = cost[0] = 10dp[1] = 10
215min(dp[1]=10, dp[0]=0) + 15 = 0 + 15 = 15dp[2] = 15
330min(dp[2]=15, dp[1]=10) + 30 = 10 + 30 = 40dp[3] = 40
45min(dp[3]=40, dp[2]=15) + 5 = 15 + 5 = 20dp[4] = 20
55min(dp[4]=20, dp[3]=40) + 5 = 20 + 5 = 25dp[5] = 25
610min(dp[5]=25, dp[4]=20) + 10 = 20 + 10 = 30dp[6] = 30
720min(dp[6]=30, dp[5]=25) + 20 = 25 + 20 = 45dp[7] = 45

最后返回 min(dp[7], dp[6]) = min(45, 30) = 30 。

所以,程序输出为 30 。

20-5

  1. ⑤ 处应填( )
    A. 0
    B. 1
    C. i - 1
    D. i

正解:B

错解:A 

 原因:

回顾汉诺塔的地柜逻辑

  1. 把 n-1 个圆盘从 原柱子(源代码中src 借助 目标柱子(源代码中tgt 移动到 中间柱子(源代码中tmp 。
  2. 把第 n 个圆盘从 原柱子(src 直接移动到 目标柱子(tgt 。
  3. 把 n-1 个圆盘从 中间柱子(tmp 借助 原柱子(src 移动到 目标柱子(tgt 。

代码逻辑

  • 函数 dfs(int i, char src, char tmp, char tgt) 中:
    • i 表示要处理的圆盘数量(从最上面第 1 个到第 i 个圆盘 )。
    • src 是 “原柱子”,tmp 是 “中间柱子”,tgt 是 “目标柱子”。
  • 终止条件:当 i == 1 时,直接把这 1 个圆盘从 src 移到 tgt 。
  • 递归过程:
    • 第一步递归 dfs(i - 1, src, tgt, tmp) :把 i-1 个圆盘从 src 借助 tgt 移到 tmp (对应 把 n-1 个圆盘从原柱子借助目标柱子移到中间柱子 )。
    • 然后执行 move(src, tgt) :把第 i 个圆盘从 src 移到 tgt (对应 把第 n 个圆盘从原柱子移到目标柱子 )。
    • 第二步递归:需要把 i-1 个圆盘从 tmp 借助 src 移到 tgt ,即 dfs(i - 1, tmp, src, tgt) 。这一步对应第 5 空,所以第 5 空应填 i - 1 。

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

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

相关文章

三菱FX-5U系列入门到精通

第2章 中间继电器 继电器工作模式:线圈得电,常开触点闭合,常闭触点断开。总结:中间继电器线圈电压分为:24VDC 110VAC 220VAC 380VAC PLC控制柜中常用的是24VDC比较多,而动力电柜中或者控制风机水泵的电柜中220VAC比较多。大部分选择24VDC,然后用触点控制220或者380,说白…

简历模板1——王明 | 高级数据挖掘工程师 | 5年经验

王明 | 高级数据挖掘工程师 | 5年经验 📱 (86) 189-xxxx-xxxx | 📧 wangmingemail.com | 📍 深圳市 💻 GitHub | 👔 LinkedIn 💼 工作经历 ​科技前沿集团 | 高级数据挖掘工程师 📅 2021.06 …

【JVM】- 内存模式

Java内存模型:JMM(Java Memory Model),定义了一套在多线程环境下,读写共享数据(成员变量、数组)时,对数据的可见性,有序性和原子性的规则和保障。 原子性 问题分析 【问…

AQS独占模式——资源获取和释放源码分析

AQS资源获取(独占模式) Node节点类 static final class Node {//标记当前节点的线程在共享模式下等待。static final Node SHARED new Node();//标记当前节点的线程在独占模式下等待。static final Node EXCLUSIVE null;//waitStatus的值&#xff0c…

压测过程中TPS上不去可能是什么原因

进行性能分析 接口没有报错或者错误率低于1%,继续增加并发还是一样,这个时候需要考虑几点 1.是否触发限流,比如waf、Nginx等情况,有没有一些限流的情况,如果触发了限流,请求是没有达到后端的,所…

Golang 解大整数乘法

文章目录 Golang 解大整数乘法问题描述:LeetCode 43. 字符串相乘思路Golang 代码 Golang 解大整数乘法 在初学 C 语言的时候,我们一定接触过“字符串相加”或“字符串相乘”之类的问题,对于初学者而言,这类问题的难度一般来说是比…

web3-区块链的技术安全/经济安全以及去杠杆螺旋(经济稳定)

web3-区块链的技术安全/经济安全以及去杠杆螺旋(经济稳定) 三个基本设计问题 技术安全 在技术结构中对其进行原子级的、瞬时利用(无风险) 无风险,因为攻击者的结果还是二进制的: 只会是攻击成功 获利或…

Java多线程通信:wait/notify与sleep的深度剖析(时序图详解)

在Java多线程编程中,线程间的通信与协作是实现复杂并发逻辑的关键。wait()、notify()以及sleep()方法作为线程控制的重要工具,有着各自独特的使用场景与规则。本文将深入探讨wait()和notify()的协作机制,以及sleep()的阻塞特性,同…

关于使用EasyExcel、 Vue3实现导入导出功能

后端部分: 其中查询数据的服务省略 1、引用 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.3</version></dependency> 2、controller package com.rs.cphs.sys.controller;i…

机器学习中的数据准备关键技术

有效的数据准备对于构建强大的机器学习模型至关重要。本文档总结并阐述了为监督和非监督学习任务准备数据的关键技术。 1. 理解数据类型 有两种数据类型。定性数据描述对象的特征&#xff0c;而定量数据描述对象的数量。 定性&#xff08;分类&#xff09;数据 名义&#x…

深度学习——基于卷积神经网络实现食物图像分类【3】(保存最优模型)

文章目录 引言一、项目概述二、环境配置三、数据预处理3.1 数据转换设置3.2 数据集准备 四、自定义数据集类五、CNN模型架构六、训练与评估流程6.1 训练函数6.2 评估与模型保存 七、完整训练流程八、模型保存与加载8.1 保存模型8.2 加载模型 九、优化建议十、常见问题解决十一、…

《棒球百科》棒球怎么玩·棒球9号位

用最简单的方式介绍棒球的核心玩法和规则&#xff0c;完全零基础也能看懂&#xff1a; 一句话目标 进攻方&#xff1a;用球棒把球打飞&#xff0c;然后拼命跑完4个垒包&#xff08;逆时针绕一圈&#xff09;得分。 防守方&#xff1a;想尽办法让进攻方出局&#xff0c;阻止他…

语言模型是怎么工作的?通俗版原理解读!

大模型为什么能聊天、写代码、懂医学&#xff1f; 我们从四个关键模块&#xff0c;一步步拆开讲清楚 &#x1f447; ✅ 模块一&#xff1a;模型的“本事”从哪来&#xff1f;靠训练数据 别幻想它有意识&#xff0c;它的能力&#xff0c;全是“喂”出来的&#xff1a; 吃过成千…

nrf52811墨水屏edp_service.c文件学习

on_connect函数 /**brief Function for handling the ref BLE_GAP_EVT_CONNECTED event from the S110 SoftDevice.** param[in] p_epd EPD Service structure.* param[in] p_ble_evt Pointer to the event received from BLE stack.*/ static void on_connect(ble_epd_t …

Nginx-2 详解处理 Http 请求

Nginx-2 详解处理 Http 请求 Nginx 作为当今最流行的开源 Web 服务器之一&#xff0c;以其高性能、高稳定性和丰富的功能而闻名。在处理 HTTP请求 的过程中&#xff0c;Nginx 采用了模块化的设计&#xff0c;将整个请求处理流程划分为若干个阶段&#xff0c;每个阶段都可以由特…

40-Oracle 23 ai Bigfile~Smallfile-Basicfile~Securefile矩阵对比

小伙伴们是不是在文件选择上还默认给建文件4G/个么&#xff0c;在oracle每个版本上系统默认属性是什么&#xff0c;选择困难症了没&#xff0c;一起一次性文件存储和默认属性看透。 基于Oracle历代在存储架构的技术演进分析&#xff0c;结合版本升级和23ai新特性&#xff0c;一…

【一】零基础--分层强化学习概览

分层强化学习&#xff08;Hierarchical Reinforcement Learning, HRL&#xff09;最早一般视为1993 年封建强化学习的提出. 一、HL的基础理论 1.1 MDP MDP&#xff08;马尔可夫决策过程&#xff09;&#xff1a;MDP是一种用于建模序列决策问题的框架&#xff0c;包含状态&am…

Java延时

在 Java 中实现延时操作主要有以下几种方式&#xff0c;根据使用场景选择合适的方法&#xff1a; 1. Thread.sleep()&#xff08;最常用&#xff09; java 复制 下载 try {// 延时 1000 毫秒&#xff08;1秒&#xff09;Thread.sleep(1000); } catch (InterruptedExcepti…

电阻篇---下拉电阻的取值

下拉电阻的取值需要综合考虑电路驱动能力、功耗、信号完整性、噪声容限等多方面因素。以下是详细的取值分析及方法&#xff1a; 一、下拉电阻的核心影响因素 1. 驱动能力与电流限制 单片机 IO 口驱动能力&#xff1a;如 STM32 的 IO 口在输入模式下的漏电流通常很小&#xf…

NY271NY274美光科技固态NY278NY284

美光科技NY系列固态硬盘深度剖析&#xff1a;技术、市场与未来 技术前沿&#xff1a;232层NAND架构与性能突破 在存储技术的赛道上&#xff0c;美光科技&#xff08;Micron&#xff09;始终是行业领跑者。其NY系列固态硬盘&#xff08;SSD&#xff09;凭借232层NAND闪存架构的…