搭建自己的OJ,没有题库,OJ易建,题库难寻。 HydroOJ/HUSTOJ均可使用。 此文件为 Hydro 题库,您可以将其一键导入任何基于 Hydro 的系统。 使用管理员账号登录后,在题目列表右侧找到【从 Hydro 导入】,上传本压缩包即可。 如果单个压缩包过大(超过 256M),不便于通过 Web 页面上传,也可以使用其他工具上传压缩包到服务器后, 在终端中使用 "hydrooj cli problem import system 压缩包路径" 命令进行导入。 如果您正在使用 HUSTOJ 或是 UOJ,推荐您备份后直接运行 Hydro 安装程序。 安装程序将会导入您已有的 题目/用户/比赛/作业/提交记录,所有数据均不会丢失。 一键安装: LANG=zh . <(curl https://hydro.ac/setup.sh) 以 root 用户粘贴到终端内运行。
2024-08-28 16:10:50 66KB 蓝桥杯
1
### 相关知识点 #### 1. 字符串索引访问 **知识点解析:** - 在C++中,可以通过索引直接访问字符串中的特定字符。字符串的索引是从0开始的。 - 对于字符串 `string a = "Hello C++"`,`a[0]` 将返回 `'H'`,`a[1]` 返回 `'e'`,依此类推。 **题目分析:** - 为了获取字符 `'C'`,我们需要找到 `'C'` 在字符串 `"Hello C++"` 中的位置。 - `'C'` 位于字符串的第7个位置,但因为索引是从0开始的,所以 `'C'` 的索引实际上是6。 - 因此,正确答案是 `a[6]`,即选项 **B**。 #### 2. 数制转换 **知识点解析:** - 在计算机科学中,常见的数制包括二进制(基数为2)、八进制(基数为8)、十进制(基数为10)和十六进制(基数为16)。 - 不同数制之间的转换非常重要,尤其是从其他数制转换到十进制。 **题目分析:** - 需要将各选项转换为十进制来比较其大小。 - A. (1234)_5 = 1 * 5^3 + 2 * 5^2 + 3 * 5^1 + 4 * 5^0 = 125 + 50 + 15 + 4 = 194 - B. (302)_8 = 3 * 8^2 + 0 * 8^1 + 2 * 8^0 = 192 + 0 + 2 = 194 - C. (11000100)_2 = 1 * 2^7 + 1 * 2^6 + 0 * 2^5 + 0 * 2^4 + 0 * 2^3 + 1 * 2^2 + 0 * 2^1 + 0 * 2^0 = 128 + 64 + 0 + 0 + 0 + 4 + 0 + 0 = 196 - D. (c2)_16 = 12 * 16^1 + 2 * 16^0 = 192 + 2 = 194 - 所以,数值与其他项不同的是选项 **C**,即 (11000100)_2。 #### 3. 前缀自减运算符 **知识点解析:** - `--i` 是前缀自减运算符,它首先将 `i` 的值减1,然后返回新值。 - `i--` 是后缀自减运算符,它先返回 `i` 的当前值,然后才将 `i` 减1。 **题目分析:** - 定义变量 `int i = 0, a;` - 执行 `a = --i;` - `i` 被减1变为 `-1`,然后将 `-1` 赋值给 `a`。 - 因此,`i` 和 `a` 的值都是 `-1`。 - 正确答案是选项 **C**,即 `-1、-1`。 #### 4. 指针算术 **知识点解析:** - `*(a + 5)` 可以理解为获取数组 `a` 中第6个元素的值。 - 在C++中,`a` 实际上是指向数组第一个元素的指针,`a + 5` 指向数组中的第6个元素。 - `*(a + 5)` 等价于 `a[5]`。 **题目分析:** - 给定数组 `int a[10] = {4, 6, 1, 3, 8, 7, 2, 9, 0, 5};` - `*(a + 5)` 实际上是 `a[5]` 的值。 - `a[5]` 的值为 7。 - 正确答案是选项 **A**,即 7。 #### 5. 递归函数 **知识点解析:** - 递归是一种解决问题的方法,其中函数调用自身来解决子问题。 - 在编写递归函数时,需要确定基本情况(base case),以防止无限循环。 **题目分析:** - 函数 `func(int x, int y, int z)` 通过递归调用来计算结果。 - 当 `x == 1 || y == 1 || z == 1` 时,返回 1。 - 当 `x < y && x < z` 时,调用 `func(x, y - 1, z) + func(x, y, z - 1)`。 - 当 `y < x && y < z` 时,调用 `func(x - 1, y, z) + func(x, y, z - 1)`。 - 否则,调用 `func(x - 1, y, z) + func(x, y - 1, z)`。 - 对于 `func(3, 3, 2)`: - 调用 `func(3, 2, 2) + func(3, 3, 1)`。 - `func(3, 2, 2)` 会继续调用,最终返回 2。 - `func(3, 3, 1)` 也会继续调用,最终返回 3。 - 结果为 2 + 3 = 5。 - 正确答案是选项 **A**,即 5。 #### 编程题解析 **第 6 题:求和题目** - 这是一道简单的遍历数组并累加符合条件的元素的问题。 - 主要是判断每个元素是否大于等于10,如果是,则累加到结果中。 **第 7 题:数位和为偶数的数** - 这道题目涉及到了数位操作。 - 需要遍历从1到n的所有整数,并计算每个整数的数位和。 - 如果数位和为偶数,则将该整数添加到结果列表中。 **第 8 题:填涂颜色** - 这道题目主要考察了二维数组的应用和逻辑处理能力。 - 通过计算被填色的行列数,进而得出未被填色的小方格数量。 **第 9 题:外观数列** - 外观数列是一个非常有趣且具有挑战性的数列。 - 需要理解每一步的规则,并通过递归或迭代的方式来生成数列。 - 该题目主要考察递归或循环算法的应用。
2024-08-24 17:03:25 153KB 蓝桥杯
1
Janus 控制器 20.01 Janus 控制器是一种无刷电机驱动器,带有一个板载磁性编码器、一个三相 MOSFET 驱动器、三个 MOSFET 半、一个温度传感器和电流感应电阻器。 Janus 控制器旨在与 ESP32 Dev-Kit1 一起作为保护罩使用,以便爱好者和学生更轻松地对电路板进行编程,并降低电路板的整体价格。 该板可用于驱动无刷电机作为开环系统或使用板载编码器驱动电机作为闭环系统并使用更复杂的算法,例如用于位置和速度控制的磁场定向控制。 我建议使用 Arduino 库,因为它已证明可以完美地用于位置和速度控制,并且易于实现,但您始终可以使用自己的算法。 我的使用适用于 ESP32 的库。 主要规格 规格 评分 方面 51 x 51 毫米 电源电压 5-12V 最大持续电流 取决于冷却 最大峰值电流 高达 23A 编码器分辨率 4096 cpr/ 0.088 度
2024-08-02 17:13:36 35.71MB encoder esp32 brushless
1
本系统以TM4C123GH6PM 单片机/FPGA 为控制核心,基于正弦脉冲宽度 调制(SPWM),设计制作了单相正弦波逆变电源,实现了输入15V 直流电压, 输出有效值为10V、额定功率为10W 的正弦交流电压,交流频率在20Hz 至100Hz 内能以1Hz 为步进值进行调整。系统使用TM4C123GH6PM 单片机/FPGA 产生 SPWM 波控制全电路,路输出信号经LC 滤波电路后得到失真度小于0.5% 的正弦波;系统采用PID 控制算法使输出交流电压负载调整率低于1%;通过合 理选用MOSFET 等措施使系统效率达到89%;采用互感器和AD 采样芯片获得 输出电流与输出电压,通过FPGA 控制继电器实现输出过流保护和自恢复功能。 系统可通过键盘步进控制和蓝牙控制两种方式设置交流频率,通过LCD 屏幕和 蓝牙接收设备实时显示系统工作参数,人机交互良好。经测试,系统除输出效率 外达到题目的全部指标要求。
2024-07-02 23:49:35 13.96MB Tiva FPGA 单相逆变电源
1
第十五届蓝杯EDA赛模拟试题一(嘉立创EDA提供)(1).zip
2024-07-02 22:51:51 999KB
1
但由于控制环路的延时作用,单极性控制方式的逆变器仍然受一个问题的困扰,即在过零点存在一个明显的振荡。单极性控制方式又包括单边方式和双边方式,双边方式相对于单边方式在抑止过零点振荡方面有一定优势,但仍然无法做到过零点的平滑过渡。为了提高逆变器的输出波形质量,本文分析了,单极性双边控制方式,分析了其振荡产生原因,并介绍一种解决过零点振荡的方案。
2024-07-02 20:15:17 614KB 技术应用
1
"三相式可控整流电路的MATLAB仿真" 三相式可控整流电路是电力电子技术中最重要的电路之一,也是应用最广泛的电路,不仅应用于一般工业领域,也广泛应用于交通运输、电力系统、通信系统、能源系统及其他领域。因此,对三相式可控整流电路的相关参数和不同性质负载的工作情况进行对比分析与研究具有重要的现实意义。 三相式半控整流电路是三相式可控整流电路的一种, 由共阴极接法的三相半波可控整流电路与共阳极接法的三相半波不可控整流电路串联而成。这种电路兼有可控和不可控的特性,共阳极组3个整流二极管总是自然换相点换流,使电流换到比阴极电位更低的一相;而共阴极组3个晶闸管则要在触发后才能换到阳极电位高的一个。 三相式半控整流电路的工作情况可以通过MATLAB软件的Power System工具箱进行仿真,并对其带纯电阻负载及电阻电感性负载时的工作情况进行对比分析与研究。仿真结果验证了所建模型的正确性。 在仿真中,假定负载电感L足够大,可以认为负载电流在整个稳态工作过程中保持恒值,因此不论控制角为何值,负载电流i总是单向流动,而且变化很小。一个周期中参与导通的管子及输出整流电压的情况如表1所示。 表1 三相式半控整流电路电阻负载ct=0时的晶闸管和二极管工作情况 晶闸管触发角a=0时,对于共阴极组所接的3个晶闸管,阳极所接交流电压最高的1个导通;同理,对于共阳极组阴极所接交流电压最低的1个导通。这样,任意时刻共阳极组和共阴极组中总是各有1个管子处于导通状态,负载电压为某个线电压。 图1中各个管子均在自然换相点处换相,从输入电压与负载线电压的对照来看,自然换相点既是各线电压的交点,又是各相电压的交点。从线电压波形可以看到由于共阴极组中处于通态的晶闸管对应的是最大相电压,而共阳极组中对应的是最小的相电压。 在MATLAB仿真中,可以通过改变共阴极组晶闸管的控制角,获取0-2.34u(变压器二次侧电压)的直流电压。具体电路图如图1所示。 三相式可控整流电路的MATLAB仿真可以帮助我们更好地理解和分析三相式可控整流电路的工作原理和特性,并且可以应用于实际工程中。
基于状态反馈线性化的单相全逆变器的最优控制pdf,
2024-06-17 16:47:13 1.36MB 开关电源
1
随着港口吞吐量逐年攀升,船舶到达密度不断增加,泊位和岸(装卸起重机)资源分配问题的全局优化已成为一个重要的课题。泊位和岸分配为NP-Hard问题,确定性算法在寻找最优解时需要大量的计算时间,并且只能解决一些特殊问题,因此许多研究中提出了基于启发式规则的近似求解方法,如基于模拟退火(SA)或遗传算法(GA)的方法。本文中,我们采用了模拟退火算法来优化此问题中的分配。 此算法适用于对计算复杂性、NP问题、数学模型、集装箱码头泊位和岸分配等方向有研究的学者,除了算法文档外,我们还提供了C++编写的源代码,此源代码只依赖于C++的标准库,方便学习和优化。 注意:文档和源码都具有原创性,供学者研究使用,不可用于商业用途。
2024-06-14 19:24:25 54.11MB 模拟退火算法 NP难问题
1
PWM产生器、整流式电路和电流转速调节器非库元件!!自己利用原理搭建!有助于理解PWM产生原理,式电路整流原理和PI调节原理!
2024-06-07 08:41:35 42KB PWM调速 桥式整流电路 直流电机
1