习题来源与许可
本页仅记录外部题型的来源、许可和主要改动。题面、接口、解析和参考实现均由本教程重新编写。
题目
- 10803 通用稳定排序 — MIT 6.087 Assignment 4(CC BY-NC-SA 4.0);改写为带失败契约的稳定通用排序接口。
- 11006 位域样式的可移植编码 — 《C Primer Plus(第 6 版)》第 15 章编程练习 6~7(Pearson © 2014;中文版 © 2015,保留所有权利);仅借鉴位字段与掩码对照考点,题面、布局、接口和答案均独立编写。
- 11005 传感器批次汇总 — 《C Primer Plus(第 6 版)》第 14 章编程练习 6(Pearson © 2014;中文版 © 2015,保留所有权利);仅借鉴重复记录聚合考点,题面、数据模型、接口和答案均独立编写。
- 11308 完整读取一行 — MIT 6.087 Assignment 3(CC BY-NC-SA 4.0);重写动态存储、流状态和输出保持语义。
- 11314 合并多个文件 — MIT 6.087 Assignment 3(CC BY-NC-SA 4.0);改写为逐资源获取、统一释放并区分错误类别的接口。
- 11315 灰度字符画降噪 — 《C Primer Plus(第 6 版)》第 13 章编程练习 12、14(Pearson © 2014;中文版 © 2015,保留所有权利);仅借鉴数字图像与邻域降噪考点,题面、滤波规则、接口和答案均独立编写。
- 11101 环形缓冲区 — Exercism:Circular Buffer(MIT);重写接口、边界条件和复杂度要求。
- 11102 可增长字节缓冲区 — NIST Juliet C/C++ 1.3(CC0 1.0);把分配大小溢出测试改写为缓冲区接口题。
- 10903 英语全字母句 — Exercism:Pangram(MIT);重写接口并补充字符处理的可移植性要求。
- 10905 游程编码 — Exercism:Run-Length Encoding(MIT);重写编码文法、错误处理和内存要求。
- 10906 字符串列表多视图排序 — 《C Primer Plus(第 6 版)》第 11 章编程练习 11(Pearson © 2014;中文版 © 2015,保留所有权利);仅借鉴多种字符串次序考点,题面、比较规则、接口和答案均独立编写。
- 11202 统计不同值 — CSES:Distinct Numbers(CC BY-NC-SA 4.0);改为
int64_t数组接口并限定使用qsort。 - 12004 十亿秒后的时刻 — Exercism:Gigasecond(MIT);改为无时区公历接口并补充日期校验。
- 30001 不透明整数栈 ADT — Pat Morin 的 Open Data Structures(CC BY 2.5 Canada);改写为不透明 C 接口并补充失败保证。
- 30002 顺序表区间插入与删除 — Pat Morin 的 Open Data Structures(CC BY 2.5 Canada);改写为 C 区间操作并补充溢出与重叠规则。
- 30003 单链表所有权 — MIT 6.087 Assignment 5(CC BY-NC-SA 4.0);补充不透明接口、尾指针不变式和所有权约定。
- 30004 开放寻址字符串集合 — Pat Morin 的 Open Data Structures(CC BY 2.5 Canada);改写为拥有字符串副本的不透明 C 接口。
- 30005 可替换的整数序列后端 — 《C Primer Plus(第 6 版)》第 17 章编程练习 2~3(Pearson © 2014;中文版 © 2015,保留所有权利);仅借鉴同一列表接口替换表示的考点,题面、ADT、两种实现和答案均独立编写。
- 30011 动态连通性查询 — 题型启发自洛谷 P3367 并查集;仅借鉴合并与连通性查询的操作模型,C 接口、失败语义、题面、样例、测试和解析均独立编写。
- 30401 二分下界 — Exercism:Binary Search(MIT);改为下界查询并补充区间与溢出要求。
- 30402 最短生产时间 — CSES:Factory Machines(CC BY-NC-SA 4.0);改为
uint64_t接口并补充溢出处理。 - 30701 最多可看电影 — CSES:Movie Festival(CC BY-NC-SA 4.0);改为原地排序接口并补充区间校验。
- 30803 编辑距离 — CSES:Edit Distance(CC BY-NC-SA 4.0);改为任意字节序列接口并压缩为一行存储。
- 31101 非负权图的单源最短路 — 题型启发自洛谷 P4779 单源最短路径;仅借鉴非负权单源最短路的训练目标,边数组接口、溢出语义、题面、样例、测试和解析均独立编写。
许可说明
- Exercism 改编题保留
Copyright (c) 2021 Exercism和 MIT 许可。 - MIT OpenCourseWare 6.087 采用 CC BY-NC-SA 4.0,本教程仅借鉴其编程主题并重新编写接口与说明。
- NIST Juliet C/C++ 1.3 在美国属于公共领域,可能存在的境外权利按 CC0 1.0 提供。
- Open Data Structures 由 Pat Morin 创作并采用 CC BY 2.5 Canada,本教程已注明来源与修改。
- CSES 改编题及本教程继续采用 CC BY-NC-SA 4.0。
- 洛谷题型仅作为概念和训练目标的启发;本教程不复制洛谷题面、样例、测试数据或题解,并在对应题目处保留原题链接。
Exercism MIT 许可全文
text
MIT License
Copyright (c) 2021 Exercism
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21