自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1943)
  • 收藏
  • 关注

原创 华为OD机试2025E卷-男生方阵[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

本文解决“男生方阵”问题:在矩形矩阵中寻找最长直线相连的男生(M)数量。核心思路是枚举每个M,仅从每条直线的起点开始计数,避免重复计算。通过四个方向(右、下、右下、左下)遍历,并利用前一格是否为M判断是否为起点,确保每条线只统计一次。时间复杂度优化至O(row×col),空间效率高。代码实现使用C++和Java分别完成输入解析与方向遍历,最终输出最大连续男生数。

2026-11-03 13:13:35 7

原创 华为OD机试2025C卷-园区参观路径[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

每个格子只被计算一次,二重循环 O(nm) 跑完;空间上 dp 表也是 O(nm)。读入 n、m 和 n×m 的网格。如果 grid[0][0] == 1,起点就不能参观,直接输出 0。初始化 dp 表,dp[0][0] = 1。按行遍历每一格:障碍格跳过(dp 保持 0);否则把上方 dp[i-1][j] 和左方 dp[i][j-1] 加过来(注意第一行/第一列的越界判断)。最后输出 dp[n-1][m-1]。三:代码实现C++int n,m;i < n。

2026-11-03 13:13:16 8

原创 华为OD机试2025C卷-微服务的集成测试[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

本文探讨微服务集成测试中的最短等待时间问题。给定n个服务及其依赖关系与启动耗时,需计算目标服务k就绪所需的最少时间。核心思想是:服务并行启动,依赖链中取最长路径耗时。通过DFS递归遍历依赖图,对每个依赖服务求最大耗时,再累加自身启动时间。时间复杂度O(n²),空间复杂度O(n)。代码实现使用邻接表存储依赖关系,高效求解最长依赖链总耗时。

2026-11-03 13:10:18 9

原创 华为OD机试2025C卷-网格红绿灯最短路径[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

网格一共 mn 个点,每个点最多入队几次,堆操作是 log 量级,整体时间 O(mn log(mn)),空间 O(mn)。m、n 都不超过 100,这点数据量完全够跑。解析两行输入字符串,还原成二维 grid 和 lights。先判断起点或终点是障碍物(值为 1),是就直接返回 -1。把每个红绿灯的等待时间存进哈希表,key 用 pos = x*n + y 编码。dist 数组初始化 INF,起点 dist[0]=0,入优先队列。

2026-11-03 13:08:47 7

原创 华为OD机试2025C卷-统计射击比赛成绩[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

分组遍历 N 条记录是 O(N),每个选手的成绩排序最多 O(K log K)(K 是该选手成绩数,N ≤ 100 所以很小),最后排序选手是 O(M log M)。整体 O(N log N)。读入 N、ID 序列、成绩序列。按 ID 分组装进 idScoreMap,每条成绩追加到对应列表。遍历每个选手:成绩数 < 3 跳过;够 3 个的降序排列,取前 3 个求和,存 (total, id)。自定义排序:先按 total 降序,total 相同按 id 降序。按顺序输出 ID,用逗号连接。

2026-11-03 13:08:21 9

原创 华为OD机试2025C卷-生成回文素数[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

设答案是 M(M 离 N 不远),每个数判回文是 O(log M)(位数),判素数是 O(sqrt(M))。因为 N 一般不大,找到答案的距离也短,整体在 O(M·sqrt(M)) 内,实际跑得飞快。读入 N。循环:先判是不是回文数(双指针或字符串反转),再判是不是素数(6k±1 剪枝到 sqrt(n))。两个都满足就打印并跳出循环。否则 n++ 继续。三:代码实现C++// 判断是否为素数// 只需要检查6k + 1 和 6k - 1i * i <= n;i += 6) {

2026-11-03 13:06:36 8

原创 华为OD机试2025C卷-发广播[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

并查集带路径压缩,每次 find 近似 O(1),总共遍历 N*N 的一半格子,所以时间 O(N²),空间 O(N)。读入一行,按逗号切分成每行字符串,n = 行数。初始化 root 数组,root[i] = i。双重循环遍历左下三角(i 从 0 到 n-1,j 从 0 到 i-1),遇到 grid[i][j] == ‘1’ 就 merge(i, j)。遍历所有站点,统计 find(i) == i 的个数,就是组长数。输出组长数。三:代码实现C++// 找到对应组的组长// 路径压缩。

2026-11-03 13:04:54 6

原创 华为OD机试2025B卷-最多几个直角三角形[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

给定N条线段,求最多能组成多少个直角三角形。通过将边长平方后排序,并利用集合快速查找,结合递归回溯与剪枝策略(如提前终止、跳过已用边),高效枚举所有可能的三元组,确保每条边仅使用一次。时间复杂度在合理范围内,可处理N≤20的数据规模,最终输出最大直角三角形数量。

2026-11-03 13:03:49 5

原创 华为OD机试2025B卷-最多等和不相交连续子序列[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

枚举所有区间是 O(N²),map 分组后每个和值内部排序 + 贪心,总区间数是 O(N²),排序摊下来是 O(N² log N),N<=1000 完全够跑。读入 N 和数组,构造前缀和 prefix[]。两重循环枚举 i、j,sum=prefix[j]-prefix[i-1],把 (i,j) 塞进 map[sum]。遍历 map 的每个 key,把对应的区间列表按 end 升序排序。贪心扫描:lastEnd 初始为第一个区间的 end,count=1;

2026-11-03 12:57:46 7

原创 华为OD机试2025B卷-最多等和不相交连续子序列[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

给定数组,求最多互不相交且和相等的连续子序列个数。通过前缀和枚举所有区间和,按和值分组,对每组区间按结束位置贪心选取不相交子序列,最大化数量。时间复杂度O(N² log N),适用于N≤1000。

2026-11-03 12:57:12 7

原创 华为OD机试2025B卷-最多等和不相交连续子序列[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

给定数组,求最多互不相交且和相等的连续子序列个数。通过前缀和枚举所有区间和,按和值分组,对每组区间按结束位置贪心选取不相交子序列,最大化数量。时间复杂度O(N² log N),适用于N≤1000。

2026-11-03 12:55:52 5

原创 华为OD机试2025B卷-勾股数元组[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

题目名称:勾股数元组【题目描述】如果 3 个正整数 (a, b, c) 满足 a² + b² = c² 的关系,则称 (a, b, c) 为勾股数(著名的勾三股四弦五)。为了探索勾股数的规律,我们定义如果勾股数 (a, b, c) 之间两两互质(即 a 与 b、a 与 c、b 与 c 之间均互质,没有公约数),则其为勾股数元组。例如 (3, 4, 5) 是勾股数元组,(6, 8, 10) 则不是。请求出给定范围 [N, M] 内,所有的勾股数元组。【输入格式】【输出格式】【示例1】输入:输出:解释:在

2026-11-03 12:55:16 7

原创 华为OD机试2025B卷-根据ip查找城市[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

城市段排序 O(N log N),查询排序 O(M log M),双指针扫一遍每个段只入堆一次、出堆一次,O((N+M) log N),50 万段 + 1 万查询完全跑得动。解析两行输入,把每个 IP 字符串转成 long,城市段存 (start,end,city)。城市段按 start 升序排序,查询 IP 按值升序排序并记录原始下标。按排序后的查询顺序遍历:把 start <= 当前 IP 的城市段全部入堆(堆键 = 长度,再按 end)。

2026-11-03 12:54:29 16

原创 华为OD机试2025B卷-打印机队列[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

每个 IN 和 OUT 都是堆的 push/pop,O(log k),k 是单台队列长度。N 个事件总时间 O(N log N),空间 O(N)。初始化 5 个优先队列(数组下标 0~4 对应打印机 1~5),全局计数器 x = 1。读 N,逐行处理事件。IN 事件:解析 P、NUM,把(NUM, x)压入第 P-1 个队列,x++。OUT 事件:解析 P,若第 P-1 个队列为空输出 NULL,否则弹出队首并输出它的编号(second)。所有事件处理完即结束。三:代码实现C++

2026-11-03 12:51:22 9

原创 华为OD机试2025A卷-数字加减游戏[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

x 从 0 开始枚举,最多枚举 b 次以内就会命中(模 b 的余数只有 b 种),所以时间 O(b),空间 O(1)。读入 s、t、a、b,计算 diff = |s - t|。如果 diff == 0(s 已经等于 t)或 diff 能被 b 整除(一次 a 都不用),直接输出 0。否则从 res = 1 开始枚举:判断 (diff - res·a) % b 和 (diff + res·a) % b 是否都不为 0。两种情况都不满足就 res++ 继续,一旦有一种满足就停。输出 res。

2026-11-03 12:48:43 8

原创 华为OD机试2025A卷-快速开租建站[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

每个任务只被完整 DFS 一次,每条依赖边只被遍历一次,所以时间 O(taskNum + relationsNum),空间 O(taskNum + relationsNum)。读入 taskNum、relationsNum,按b → a方向建邻接表(relationMp[b] 加入 a)。初始化 visited 数组为极大数,表示未计算。对每个任务 i 调用 DFS:若已缓存直接返回;否则遍历它所有依赖任务,取最长链 +1,写入缓存。遍历所有任务,取 DFS 结果的最大值作为 res。

2026-11-03 12:45:19 84

原创 华为OD机试2025A卷-二元组个数[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

给定两个数组,求满足 a[i] == b[j] 的二元组个数。核心思想:统计两数组中各数字出现频次,对公共数字的频次相乘后累加。时间复杂度 O(m+n),空间复杂度 O(不同元素个数)。通过哈希表高效计数,避免暴力枚举,实现最优解。

2026-11-03 12:42:48 7

原创 华为OD机试2025E卷-字符串重新排列、字符串重新排序[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

题目要求对字符串中的单词进行双重处理:先将每个单词字母按字典序排序,再根据转换后单词的出现次数(降序)、长度(升序)、字典序(升序)进行排序。解法核心为先内部排序,再用三级键排序。通过哈希表统计频次,最终输出按规则排列的单词序列。时间复杂度为O(L log L + n log n),其中L为总长度,n为单词数。代码实现简洁高效,支持多语言版本。

2026-11-02 12:55:01 7

原创 华为OD机试2025E卷-编码能力提升计划[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

小王需在 $m$ 天内完成 $n$ 道题,每天最多看一次答案(免去某题做题时间)。目标是使每日最大做题时间 $T$ 最小。采用二分答案 + 贪心验证:二分 $T$,贪心模拟分配题目,若当前天累计时间超 $T$,优先“看答案”去掉当天耗时最长的题;无机会则换天。复杂度 $O(n \log \sum \text{time})$,高效求解最小 $T$。

2026-11-02 12:53:52 12

原创 华为OD机试2025E卷-MVP争取站[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

题目要求在每分钟得分由一人包揽的前提下,让尽可能多的队员得分相同并均获MVP,求最少MVP得分。解法核心是:从最多上场人数(总分钟数)开始逆向枚举,利用回溯+剪枝判断能否将总分均分给n人。关键剪枝包括整除判断、最大分超限排除、降序排序及对称性剪枝。通过高效搜索,快速定位首个可行的均分方案,输出对应每人得分。时间复杂度可控,适用于数据范围。

2026-11-02 12:53:15 8

原创 华为OD机试2025E卷-MVP争取站[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

题目要求在篮球赛中让尽可能多的队员并列成为MVP,即每人得分相同且总分固定。通过从最多人数开始枚举,利用回溯法判断是否能将每分钟得分分配给n人且每人得分相等。关键优化包括:整除判断、最大得分剪枝、降序排序及对称剪枝。代码实现中先排序,再逐层尝试,首个可行解即为最少MVP得分。时间复杂度可控,适用于数据范围。

2026-11-02 12:46:23 10

原创 华为OD机试2025C卷-找朋友[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

栈里始终是递减的,所以当前 i 第一次比栈顶高时,这个 i 就是栈顶小朋友右边第一个比他高的人——中间那些被压在栈里、比他还矮的,已经不会是他的答案了。每个元素最多入栈一次、出栈一次,不用反复回头扫。每个下标至多压栈一次、弹出一次,整趟遍历 O(N),再加上输出 O(N),总共线性;栈和结果数组各开 O(N) 空间。读入 N 和身高数组,初始化 res 数组全为 0。建一个空栈 stk,从左到右遍历每个下标 i。栈空或栈顶身高 ≥ 当前身高,直接把 i 压栈。

2026-11-02 12:45:35 8

原创 华为OD机试2025C卷-寻找最优的路测线路[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

本文探讨了“寻找最优路测线路”问题,核心是求从左上角到右下角路径中最小信号值的最大可能值(即最大瓶颈路径)。采用大顶堆优化的Dijkstra算法,将问题转化为在所有路径中最大化路径最小值。通过优先扩展当前得分最高的节点,确保首次到达终点时即为最优解。时间复杂度为 $O(RC \log RC)$,适用于 $R, C \leq 20$。代码实现简洁高效,支持提前终止,是解决此类最大瓶颈路径问题的经典方法。

2026-11-02 12:43:11 6

原创 华为OD机试2025C卷-剩余银饰重量[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

n ≤ 40,每回合堆的弹/入操作是 O(log n),回合数最多 O(n),总体就是 O(n log n)。把所有银饰重量依次压入大顶堆。当堆里元素 ≥ 3 时,循环弹出 z、y、x,按四种规则算剩余重量。有剩余重量就 push 回堆里,没有就什么都不做。堆不足 3 个时退出循环。堆空输出 0,否则输出堆顶重量。三:代码实现C++// 使用大顶堆优先队列模拟int n;cin >> n;i < n;cin >> tmp;// 模拟。

2026-11-02 12:42:05 8

原创 华为OD机试2025C卷-分积木[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

只需要一遍循环:边读边累加异或和、总重量、最小值,O(N) 搞定,N ≤ 100 时几乎瞬时出结果。读入 N 和 N 个重量,初始化 sum=0、totalWeight=0、minValue=极大值。边读边算:sum ^= 当前值,totalWeight += 当前值,minValue 取当前值与最小值的较小者。循环结束后检查 sum:sum!= 0 输出 NO。sum == 0 输出 totalWeight - minValue。三:代码实现C++int n;// 记录异或计算结果。

2026-11-02 12:41:19 8

原创 华为OD机试2025C卷-Excel单元格数值统计[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

因为有缓存,每个单元格最多真正计算一次,递归引用直接命中缓存。读入行列、整张表,初始化缓存 tableValue 全为 -1。把选中区域按 : 切成起止坐标,字母转列下标、行号减 1 转行下标。双重循环遍历区域内每个单元格,调用 getCellValue 取值并累加。getCellValue 里:缓存命中直接返回;数字直接转 int;公式按 + / - / 单单元格三种情况解析,操作数递归取值。把算出来的值写回缓存,最后输出累加和。三:代码实现C++

2026-11-02 12:40:09 4

原创 华为OD机试2025B卷-最小矩阵宽度[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

每一列最多被 right 加一次、被 left 减一次,每次操作扫 N 行,总次数 O(N*M),哈希表增删查都是 O(1)。读入矩阵、k 和待匹配数组,用 mp 统计待匹配数字的次数。先把第 0 列的 N 个数加进 total,并算出初始 count;若 count == k 直接输出 1。双指针:count < k 就右移 right 加一列并更新 count;凑齐了就记录宽度 res=min(res, right-left+1)。

2026-11-02 12:39:14 6

原创 华为OD机试2025B卷-最大岛屿体积[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

本文介绍“最大岛屿体积”问题的解法,核心是通过BFS遍历网格中每个未访问的陆地,计算连通区域的总体积。使用队列逐层扩展,避免递归栈溢出,时间复杂度为O(m×n)。代码实现涵盖C++、Java和Python3,均采用标记访问数组防止重复计算,最终输出最大岛屿体积。

2026-11-02 12:37:35 5

原创 华为OD机试2025B卷-贪心的商人[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

双重循环扫 number 种商品 × days 天,每个相邻 pair 只算一次,所以是 O(number·days)。读入商品数量 number、天数 days、每种商品持有上限 maxItems,以及价格矩阵 prices。maxProfit 初始化为 0。对每种商品 i,j 从 1 到 days-1:profit = max(0, prices[i][j] - prices[i][j-1])。把 profit 乘上该商品持有上限 maxItems[i],累加到 maxProfit。

2026-11-02 12:37:00 78

原创 华为OD机试2025B卷-区间交集[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

给定一组闭区间,求所有两两区间的交集,并合并相邻或重叠的交集区间。通过先按起点排序,利用有序性剪枝减少无效比较,再对交集进行排序与合并,最终输出升序合并后的区间列表;若无交集则输出“None”。时间复杂度为 O(N² log N),适用于 N ≤ 1000 的规模。

2026-11-02 12:36:06 48

原创 华为OD机试2025B卷-篮球游戏[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

本题模拟篮球桶的进出操作,使用双端队列(deque)边放边取。按顺序将球从右端放入,并用集合记录已放入球。对于每个目标取出球,若已在桶中,仅当其位于队首或队尾时可取出(对应L或R),否则非法。若取出序列长度不等于放入数或中途卡住,则输出NO。时间复杂度为O(n),空间复杂度为O(n)。

2026-11-02 12:18:47 41

原创 华为OD机试2025B卷-计算堆栈中的剩余数字[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

题目要求模拟栈的入栈过程,每当新元素等于其下方某段连续元素之和时,该段元素出栈并以两倍值重新入栈。通过数组模拟栈,逐个处理输入数字,利用后缀累加判断合并条件,并递归处理翻倍后的元素。最终逆序输出栈中剩余元素。时间复杂度为O(N²),适用于N≤1000的规模。

2026-11-02 12:18:15 152

原创 华为OD机试2025B卷-DNA序列[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

本文介绍如何在DNA序列中找出长度为N且GC比值最高的子串。采用滑动窗口算法,通过维护窗口内G/C字符数量,避免重复计数,实现O(n)时间复杂度。初始化前N个字符的GC数,随后逐位滑动窗口,仅更新进出字符的影响,当当前窗口GC数严格大于最大值时更新最佳起始位置。最终输出首个最优子串。代码提供C++、Java、Python、JavaScript四种语言实现。

2026-11-02 12:17:39 463

原创 华为OD机试2025A卷-事件推送[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

题目要求在两个已排序的正整数数组A、B中,为每个Ai找出满足Ai ≤ Bj且距离≤R的最近Bj。采用双指针法:维护aIndex和bIndex,当Ai ≤ Bj时检查距离并输出,aIndex前进;否则bIndex前进。利用数组有序性,确保每个Ai仅输出一次且匹配最近的Bj,时间复杂度O(m+n),高效解决该问题。

2026-11-02 12:16:56 279

原创 华为OD机试2025A卷-农场施肥[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

题目要求在n天内完成m片果林的施肥,每天最多处理一片。通过二分查找最小能效k,使总天数≤n。若n < m,直接返回-1。利用ceil(fields[i]/k)计算每片所需天数,二分优化至O(m log max(fields)),高效求解最小k。

2026-11-02 12:16:25 444

原创 华为OD机试2025A卷-快递业务站[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

题目要求计算覆盖所有快递站点所需的最少主站点数,本质是求无向图中连通分量的个数。使用并查集高效合并可达站点,通过路径压缩与按秩合并优化,遍历邻接矩阵将所有可达点对合并,最后统计根节点数量即为答案。时间复杂度 O(N²α(N)),空间复杂度 O(N),适用于大规模数据。

2026-11-02 12:15:51 183

原创 华为OD机试2025A卷-查找重复代码[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

两层循环各扫一遍 n 和 m,总共 n×m 次状态转移,时间就是 O(n·m)。读入两行字符串 s1、s2。开一个 (n+1)×(m+1) 的 dp 数组,初始全 0。双重循环 i 从 1 到 n、j 从 1 到 m:字符相等就 dp[i][j] = dp[i-1][j-1] + 1,否则置 0。每次 dp[i][j] 超过当前 maxLen,就更新 maxLen,并把 s1 当前截出来的子串记为 res。最后输出 res。三:代码实现C++

2026-11-02 12:15:17 348

原创 华为OD机试2025E卷-最佳植树[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

本文介绍“最佳植树”问题的解法:在给定可种植点坐标和树苗数量下,求最大可能的最小间距。通过排序后使用二分查找结合贪心验证(check函数),判断指定间距是否可行,最终确定最优最小间距。时间复杂度为O(n log n),高效解决大规模数据问题。

2026-11-01 11:57:05 9

原创 华为OD机试2025E卷-目录删除[200分](Java_Python3_C++_JsNode_Go)实现100%通过率

题目要求删除指定目录及其所有子目录后,返回剩余目录ID的递增序列。通过构建父子关系树,从根节点0开始深度优先遍历,跳过待删目录及其子树,收集其余节点并排序输出。若删除根目录0,则无剩余目录。该方法避免了复杂的数据删除操作,高效且逻辑清晰。

2026-11-01 11:56:32 7

原创 华为OD机试2025C卷-猴子爬山[100分](Java_Python3_C++_JsNode_Go)实现100%通过率

猴子爬山问题要求计算从山脚到山顶(共N阶)的跳跃方式数,每次只能跳1步或3步。通过动态规划求解:定义dp[i]为到达第i阶的方案数,状态转移方程为dp[i] = dp[i-1] + dp[i-3],初始条件dp[0] = 1。时间复杂度O(N),空间复杂度O(N),适用于N≤50。代码实现简洁高效,需注意边界处理与初始化。

2026-11-01 11:56:02 8

【计算机图形学】基于C语言的动态爱心图案生成算法实现:控制台彩色进度条与数学函数绘图综合设计

内容概要:本文是一段C语言程序代码,通过调用Windows系统下的控制台功能实现了一个彩色动态进度条和一个由字符组成的“爱心”图形动画。程序首先展示一个模拟加载过程的彩色进度条,随后绘制出一个数学方程定义的心形图案,并在图案下方输出“Hello World!”字样。核心实现包括利用数学函数判断心形区域、随机颜色输出以及屏幕刷新控制。; 适合人群:具备基本C语言编程能力,对图形绘制和控制台操作感兴趣的初学者或编程爱好者。; 使用场景及目标:①学习如何在控制台中实现动态视觉效果;②理解数学公式在图形生成中的应用;③掌握C语言中颜色输出、缓冲区刷新和延迟函数的使用方法;④用于教学演示或创意编程展示。; 阅读建议:建议读者结合代码逐步调试运行,观察每行输出的效果变化,深入理解坐标遍历、条件判断与图形映射的关系,同时可尝试修改参数如颜色、字符或方程来扩展视觉效果。

2025-11-30

游戏开发基于C++的飞机大战游戏设计与实现:控制台交互式射击游戏系统开发

内容概要:本文提供了一个基于C++和Windows API实现的“飞机大战”游戏升级版源码解析,详细展示了游戏的核心逻辑与功能实现,包括战机控制、子弹发射、敌机生成与移动、碰撞检测、得分系统及游戏状态管理。通过面向对象的设计方法,使用Game类封装游戏元素和行为,并利用控制台绘图技术实现可视化界面。代码中还包含了颜色设置、光标隐藏、坐标定位等辅助功能,增强了用户体验。游戏支持不同难度选择,具备

2025-11-30

接球游戏4232.txt

内容概要:本文提供了一个基于C++和图形库实现的简单接球游戏源码,通过定义球的结构体、盒子位置、用户输入控制及游戏逻辑,实现了球的随机生成、下落运动、碰撞检测与得分计算等功能。游戏界面分为左侧游戏区和右侧信息显示区,包含倒计时、得分统计和操作提示。程序使用EasyX图形库进行绘图和事件处理,通过主循环不断更新画面并响应键盘输入,支持左右移动接球盒或按ESC退出游戏,最终显示玩家得分并结束。; 适合人群:具备基本C++编程能力,熟悉流程控制与结构体的学生或初学者。; 使用场景及目标:①学习图形化编程基础与游戏开发逻辑;②理解实时交互系统的设计思路,如按键响应、画面刷新与碰撞判定;③掌握简单游戏的架构设计与时间控制机制; 阅读建议:建议结合EasyX图形库文档运行并调试代码,逐步理解各模块功能,可尝试扩展功能如增加难度、音效或优化界面布局以加深理解。

2025-11-30

游戏开发基于C++的狼人杀游戏逻辑实现:多人角色分配与夜间行动模拟系统设计

内容概要:本文是一段C++编写的“狼人杀”游戏模拟程序代码,主要实现了15人局的游戏逻辑,包含杀手、预言家、平民和法师四种角色。系统随机分配玩家身份,并模拟每晚的角色行动(如杀手杀人、预言家查验、法师使用技能),随后进入白天投票环节,由AI控制非玩家角色进行投票,最终根据存活情况判断胜负。游戏过程中展示了身份分配、技能使用、投票机制与胜负判定等核心流程。; 适合人群:具备基本C++编程能力并对游戏逻辑开发感兴趣的学习者或开发者。; 使用场景及目标:①学习多角色回合制游戏的基本架构设计;②理解随机数运用、数组状态管理与简单AI行为模拟的实现方式;③可用于教学演示或作为小型游戏项目的参考模板。; 阅读建议:建议结合代码逐步调试运行,观察各角色执行顺序与状态变化,重点关注循环控制变量、条件分支及数组标记的使用,以深入掌握游戏流程控制逻辑。

2025-11-30

【计算机图形学】基于C++的三维玫瑰花渲染算法实现:利用z-buffer与参数方程绘制彩色立体花朵模型

内容概要:本文是一段使用C++语言编写的绘制3D玫瑰花的程序代码,结合了图形库(graphics.h)与数学算法,通过定义结构体DOT存储三维坐标和颜色信息,利用复杂的三角函数和参数方程计算花瓣、花萼、叶片和花茎上每个点的位置与色彩。程序采用z-buffer技术优化渲染效果,确保前后层次正确,最终在绘图窗口中呈现出一朵具有立体感和渐变色彩的动态玫瑰花。代码包含随机采样、视角变换和逐像素绘制等关键步骤,展现了计算机图形学中基本的建模与渲染原理。; 适合人群:具备C++编程基础、了解基本图形学概念的大中专学生或编程爱好者,以及对视觉艺术与数学结合感兴趣的开发者。; 使用场景及目标:①学习如何用数学公式生成复杂自然形态;②理解z-buffer机制在三维显示中的应用;③掌握在简单图形库环境下实现3D投影与着色的技术;④用于教学演示或创意编程项目参考。; 阅读建议:此资源以代码为核心,建议读者结合注释逐步调试运行,观察不同参数对图像的影响,并尝试修改函数表达式或颜色映射方式以实现个性化效果,从而深入理解算法背后的几何与视觉原理。

2025-11-30

游戏开发基于EasyX的C++射击游戏设计:双角色弹幕对抗系统实现

内容概要:本文提供了一个基于C++和EasyX图形库实现的简单射击游戏源码,展示了面向对象的设计思想与基本的游戏循环逻辑。游戏中包含玩家坦克、Boss敌人及其各自发射的子弹类,通过坐标管理、碰撞检测、键盘输入响应、图形绘制和血条显示等功能实现交互式对战。玩家通过W/S键控制上下移动,K键发射子弹攻击Boss,双方生命值归零后判定胜负并结束游戏。代码结构清晰,运用了类封装、定时器控制移动与攻击频率、屏幕刷新与图形擦除等核心技术。; 适合人群:具备C++基础和初步图形编程经验的开发者,适合学习游戏开发入门的学生或编程爱好者。; 使用场景及目标:①理解基于EasyX的简单2D游戏开发流程;②掌握游戏主循环、碰撞检测、用户输入处理等核心机制;③学习如何用面向对象方法组织游戏实体;④作为教学示例用于实践小型项目开发。; 阅读建议:建议结合EasyX环境运行并调试代码,逐步跟踪各对象的状态变化,深入理解绘图与逻辑更新的配合方式,可尝试扩展功能如增加难度、添加音效或优化子弹系统。

2025-11-30

游戏开发基于C语言的角色扮演游戏设计:勇者救公主游戏系统的实现与功能分析

内容概要:本文档是一段C语言编写的文本冒险类游戏代码,名为《勇者游戏》,玩家扮演一名勇者,在虚拟世界“苍穹世界”中通过探索、战斗、购买装备与使用道具等方式提升角色能力,最终目标是击败使徒并解救被绑架的罗茜公主。游戏中包含角色属性(如攻击力、防御力、生命值)、等级经验系统、随机遭遇战斗机制、物品使用与买卖系统,并支持外挂模式(输入特定名称“圣战斗士”可获得无敌属性)。玩家可在酒吧、酒店、商会、拍卖行和野外等场景间切换,进行休息、购物、对话、战斗等活动。战斗采用回合制,结合随机数判定攻击效果和逃跑成功率,击败敌人可获得金钱、经验和稀有物品。; 适合人群:具备基础C语言编程知识并对游戏开发感兴趣的初学者或编程爱好者;适合希望理解小型项目结构、逻辑控制与基本数据管理的学习者。; 使用场景及目标:①学习如何用C语言实现简单的游戏逻辑与流程控制;②理解结构体、函数模块化、随机数应用、用户交互处理等编程技术的实际运用;③可用于教学演示或作为小型游戏开发的参考模板; 阅读建议:建议结合代码逐步调试运行,跟踪变量变化与函数调用流程,深入理解状态管理和游戏循环机制,同时可尝试扩展功能如新增地图、怪物或任务系统以提升实践能力。

2025-11-30

游戏开发基于C++的贪吃蛇游戏设计与实现:控制台环境下蛇移动逻辑与碰撞检测机制研究

内容概要:本文提供了一个用C++编写的贪吃蛇游戏实现代码,涵盖了游戏的核心逻辑与功能模块,包括地图绘制、蛇的移动与增长、食物随机生成、碰撞检测(撞墙和自撞)、方向控制以及游戏难度调节机制。通过调用Windows API实现光标隐藏和定位,优化控制台显示效果,并利用定时循环控制蛇的移动速度,提升游戏体验。代码结构清晰,注释明确,便于理解游戏运行流程和技术细节。; 适合人群:具备基本C++编程能力、熟悉控制台操作和面向过程编程的初学者或中级开发者。; 使用场景及目标:①学习经典小游戏的设计思路与实现方式;②掌握控制台程序开发技巧,如光标控制、键盘输入响应、实时刷新等;③理解游戏主循环、状态更新与用户交互的基本架构; 阅读建议:建议读者结合代码逐步调试运行,观察每一步的执行效果,深入理解各函数的作用,并可在此基础上进行扩展练习,如增加计分系统、音效、图形界面等高级功能。

2025-11-30

游戏开发基于C++的飞机大战游戏设计与实现:控制台交互式空战射击系统开发

游戏开发基于C++的飞机大战游戏设计与实现:控制台交互式空战射击系统开发

2025-11-30

编程教学基于C++的打字练习游戏设计:通过随机字符输入提升用户键盘反应速度与准确率

内容概要:本文提供了一个基于C++语言编写的简单打字小游戏源码,通过控制台实现字符从左到右移动的效果,玩家需在字符到达屏幕右侧前正确输入对应字母,否则视为失误。程序使用了随机数生成、键盘输入监听、光标回退与即时显示等技术,利用Windows平台特有的Sleep、_kbhit和_getch函数实现延时和非阻塞式按键检测。游戏支持实时计分,统计正确输入和失败次数,并可在游戏中按ESC键安全退出。代码结构清晰,注释明确,适合初学者理解基本的游戏逻辑与控制流程。; 适合人群:具备基础C++编程能力、熟悉基本语法和标准库函数的初学者,或对小型控制台项目感兴趣的开发者; 使用场景及目标:①学习控制台交互式程序的设计与实现;②理解随机字符生成、实时输入响应与游戏状态控制机制;③作为C++课程设计或编程练习的参考案例; 阅读建议:此资源为完整可运行的C++程序,建议在支持Windows API的编译环境下调试运行,结合代码逐步跟踪执行流程,重点关注循环控制、字符刷新与用户输入处理部分,以深入掌握其实现原理。

2025-11-30

dev c++跑酷.txt

内容概要:本文档是一份使用C++编写的控制台跑酷游戏源代码,基于Dev-C++平台开发,利用Windows API实现图形界面与用户交互。游戏中玩家操控角色在限定区域内移动、跳跃,躲避障碍并攻击敌人,包含多种技能效果如火焰、水流、风暴和雷电等。程序实现了基本物理运动、碰撞检测、敌人AI、BOSS战斗机制、道具系统及多阶段关卡设计。通过宏定义与函数模块化管理地图绘制、角色行为和游戏状态更新,展现了较为完整的游戏循环逻辑。; 适合人群:具备C++基础语法知识,熟悉控制台编程与简单Windows API调用的初学者或中级开发者,对游戏开发感兴趣的编程学习者。; 使用场景及目标:①学习如何在无图形库支持下使用字符绘制实现简单动画与界面布局;②理解游戏主循环、状态机、碰撞响应与敌我交互的设计思路;③掌握键盘输入处理、定时刷新机制及基础面向过程的代码组织方式。; 阅读建议:建议结合Dev-C++环境运行并逐步调试代码,观察各函数执行流程,重点关注Map、Move、Boss行为控制等核心模块,尝试修改参数以理解其作用,从而深入掌握控制台游戏的实现原理。

2025-11-30

游戏开发基于C++的2048游戏逻辑实现:控制台版滑动合并算法与棋盘管理设计

游戏开发基于C++的2048游戏逻辑实现:控制台版滑动合并算法与棋盘管理设计

2025-11-30

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除