news 2026/6/6 5:59:50

HNU 算法设计与分析2019年期末考试原题(附自己写的解析)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HNU 算法设计与分析2019年期末考试原题(附自己写的解析)

前言

感谢@甘晴void大佬的分享,找到了这套卷子。

一、单项选择题

题干

解析

1. A

2. B

3. A

4. C

5. D

二、简答题

题干

解析

三、算法应用题

3.1 题干

3.1 解析

考试遇到实在画不开的话,最后一层就写文字说明一下吧

3.2 题干

3.2 解析

3.3 题干

3.3 解析

3.4 题干

3.4 解析

3.5 题干

3.5 解析

四、算法设计题

4.1 题干

4.1 解析

4.2 题干

4.2 解析

算法思想

对每个矩形把两条边排序为,把旋转 90° 的情形统一处理;若矩形 i 要能嵌入到矩形 j,则必须同时满足。因此问题化为在二维向量上寻找二维严格增序的最长链。先按 s 升序、在 s 相同时按 t 降序排序(这样可以避免取到同一 s 的多个元素),然后在排序后的序列上对 t 求严格递增的最长子序列(LIS),长度即为答案。

递推式

设排序后序列为。可定义动态规划:
,若不存在则 dp[i]=1。

最终答案 =

伪代码

由于题目里面给了输入和输出,因此伪代码里就加入了 main 函数。

int solve_one_case(vector<pair<int,int>>& rects) { // 将每个矩形标准化为 (s,t) = (min(a,b), max(a,b)) vector<pair<int,int>> p; for (auto &r : rects) { int s = min(r.first, r.second); int t = max(r.first, r.second); p.emplace_back(s, t); } // 按 s 升序,若 s 相同按 t 降序 sort(p.begin(), p.end(), [](const pair<int,int>& A, const pair<int,int>& B) { if (A.first != B.first) return A.first < B.first; return A.second > B.second; }); // 在 t 上求严格递增的最长子序列(LIS)长度,二分法实现 vector<int> tails; // tails[i] = 最小的尾值,使得存在长度为 i+1 的严格递增子序列 for (auto &pr : p) { int t = pr.second; auto it = lower_bound(tails.begin(), tails.end(), t); // 严格上升 -> lower_bound if (it == tails.end()) tails.push_back(t); else *it = t; } return (int)tails.size(); } int main() { int T; if (!(cin >> T)) return 0; while (T--) { int n; cin >> n; vector<pair<int,int>> rects(n); for (int i = 0; i < n; ++i) cin >> rects[i].first >> rects[i].second; cout << solve_one_case(rects) << '\n'; } return 0; }

分析复杂度

时间复杂度:预处理每个矩形并将其边长归一化为 (s,t) 需要 O(n)。对 n 个 (s,t) 对按 s 升序(s 相同时 t 降序)排序耗时 O(nlog n)。在排序后的序列上用二分法维护 tails 求严格递增的 LIS,每个元素插入或替换耗 O(log n),总共 O(nlog n)。因此总体时间复杂度为 O(nlog n)。

空间复杂度:主要额外空间用于存储归一化后的对 (s,t) 和用于 LIS 的 tails 数组,均为 O(n)。

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

麦橘超然真实项目应用:品牌视觉素材生成全流程

麦橘超然真实项目应用&#xff1a;品牌视觉素材生成全流程 1. 为什么品牌团队开始用“麦橘超然”做视觉生产 你有没有遇到过这样的情况&#xff1a;市场部下午三点发来紧急需求——“明天上午十点要发一条新品预告&#xff0c;配图得有科技感、高级感、还得带点东方韵味”&am…

作者头像 李华
网站建设 2026/5/28 13:11:01

YOLOv13官版镜像亲测分享:几分钟搞定部署

YOLOv13官版镜像亲测分享&#xff1a;几分钟搞定部署 你是不是也经历过—— 花一整天配环境&#xff0c;结果卡在CUDA版本不匹配&#xff1b; 反复重装PyTorch&#xff0c;却始终提示flash_attn找不到GPU&#xff1b; 好不容易跑通demo&#xff0c;换张图又报FileNotFoundErro…

作者头像 李华
网站建设 2026/5/30 12:58:58

ESP32 IDF环境下EEPROM模拟驱动详解

以下是对您提供的博文内容进行 深度润色与重构后的技术文章 。我以一位深耕嵌入式系统多年、常年在一线带团队做ESP32产品开发的工程师视角&#xff0c;重新组织全文逻辑&#xff0c;去除AI腔调与模板化表达&#xff0c;强化工程语感、实战细节和“人话”解释&#xff0c;同时…

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

影视素材修复新招:GPEN镜像提升人脸质量

影视素材修复新招&#xff1a;GPEN镜像提升人脸质量 在影视后期制作中&#xff0c;老片修复、低清素材增强、历史影像抢救等任务常常面临一个核心难题&#xff1a;人脸区域细节模糊、纹理失真、边缘锯齿严重。传统超分方法对复杂遮挡、极端光照、运动模糊等情况效果有限&#…

作者头像 李华
网站建设 2026/6/5 4:01:24

Qwen3-Embedding-4B部署教程:API网关安全配置方案

Qwen3-Embedding-4B部署教程&#xff1a;API网关安全配置方案 1. Qwen3-Embedding-4B介绍 Qwen3 Embedding 模型系列是 Qwen 家族最新推出的专用嵌入模型&#xff0c;专为文本嵌入与排序任务深度优化。它不是通用大语言模型的简单变体&#xff0c;而是基于 Qwen3 密集基础模型…

作者头像 李华
网站建设 2026/6/5 8:39:53

Z-Image-Turbo数据库选型:SQLite vs PostgreSQL部署对比

Z-Image-Turbo数据库选型&#xff1a;SQLite vs PostgreSQL部署对比 Z-Image-Turbo 是一款轻量高效、开箱即用的图像生成工具&#xff0c;其核心优势不仅体现在模型推理速度和画质表现上&#xff0c;更在于整体部署体验的简洁性与可维护性。而支撑这一体验的关键一环&#xff…

作者头像 李华