news 2026/6/10 19:35:34

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/6/9 21:18:19

Qwen-Image-Layered在电商设计中的应用,效率翻倍

Qwen-Image-Layered在电商设计中的应用&#xff0c;效率翻倍 1. 为什么电商设计师需要图层化编辑能力 你有没有遇到过这样的情况&#xff1a;刚做完一张主图&#xff0c;运营突然说“把模特换成穿新季款式的”&#xff0c;或者“背景换成纯白&#xff0c;但保留阴影细节”&am…

作者头像 李华
网站建设 2026/6/10 13:46:31

Colab免费资源跑Qwen3-0.6B,性价比超高

Colab免费资源跑Qwen3-0.6B&#xff0c;性价比超高 在大模型门槛依然较高的今天&#xff0c;能用零成本跑通一个真正可用的开源大模型&#xff0c;是很多开发者梦寐以求的事。Qwen3-0.6B作为千问系列最新发布的轻量级密集模型&#xff0c;参数仅0.6B&#xff0c;却完整继承了Q…

作者头像 李华
网站建设 2026/6/10 16:59:18

BERT模型推理延迟高?免配置镜像一键部署实战解决

BERT模型推理延迟高&#xff1f;免配置镜像一键部署实战解决 1. 为什么BERT填空总卡顿&#xff1f;真实痛点拆解 你是不是也遇到过这样的情况&#xff1a;想用BERT做中文语义填空&#xff0c;本地跑起来却慢得让人抓狂&#xff1f;输入一句话&#xff0c;等三五秒才出结果&am…

作者头像 李华
网站建设 2026/6/10 13:43:33

Qwen3-1.7B temperature参数调优:生成质量提升实战指南

Qwen3-1.7B temperature参数调优&#xff1a;生成质量提升实战指南 你是不是也遇到过这样的情况&#xff1a;明明用的是最新开源的Qwen3-1.7B模型&#xff0c;输入同样的提示词&#xff0c;有时回答逻辑清晰、语言自然&#xff0c;有时却答非所问、啰嗦重复&#xff0c;甚至冒…

作者头像 李华
网站建设 2026/6/9 21:32:23

cv_unet_image-matting图像抠图实战教程:WebUI部署详细步骤

cv_unet_image-matting图像抠图实战教程&#xff1a;WebUI部署详细步骤 1. 为什么你需要这个抠图工具 你是不是经常遇到这些情况&#xff1a; 给客户做电商主图&#xff0c;要快速把人像从杂乱背景里抠出来&#xff0c;但PS太费时间&#xff1b;做社交媒体头像&#xff0c;想…

作者头像 李华
网站建设 2026/6/10 16:09:52

CAM++降本增效实战:中小企业声纹系统部署成本优化

CAM降本增效实战&#xff1a;中小企业声纹系统部署成本优化 1. 为什么中小企业需要“轻量级”声纹系统&#xff1f; 你有没有遇到过这些场景&#xff1a; 客服中心想做来电身份初筛&#xff0c;但商用声纹API按调用量收费&#xff0c;每月动辄上万元&#xff1b;员工考勤想加…

作者头像 李华