# 算法竞赛中的数论 – 系列课件
<img style="width: 40%" align="right" src="./misc/logo.png" />
正在绝赞编写中!
本系列课件的 PDF 版本遵循 CC BY-SA 4.0 版权协议。<br/>
本系列课件的 LaTeX 源代码以 GNU GPL v3.0 协议开源。<br/>
(注意 GNU GPL v3.0 包含 CC BY-SA 4.0)
力求做到的目标:
- 比任何现存算法竞赛博客更**精炼的表述**(欢迎提 issue)
- 更具**整体逻辑**的知识点编排结构(欢迎提 issue)
- **涵盖大部分** NOI 级别及以下的数论知识点(欢迎提 issue)
- 毫无经验的初学者按照顺序阅读,不借助其他资料也可**完全掌握**(欢迎提 issue)
包含以下内容:
1. 基础知识、简单素数筛法、与解线性 Diophantus 方程
- 感觉每个课件需要插入一个专门讲例题的课件(关于例题的选取有什么想法吗?)
2. 模 m 剩余系的加法与乘法结构及其应用(制作中)
3. 中国剩余定理(预定)
4. 敬请期待……(欢迎提 issue)
官方英文名:Number Theory in Competitive Programming (Lecture Slide Series)。
## 如何贡献
在阅读课件的过程中,如果发现笔误、逻辑错误、或排版错误等,请通过 QQ 联系我(3507898808)。当然,更推荐发 GitHub issue,但如果没有 GitHub 的账号或使用经验(作为普通 OIer,这很正常),仍然欢迎通过 QQ 联系。
我们不会有读者群之类的东西,但有一个“编写小组” QQ 群,但我希望只让有较大意愿探讨课件编写、或能提供较大帮助的朋友加入,并且要求你必须是一个有在中国的比赛经验的 OIer 或 XCPCer。<br/>
这个群是推荐 + 邀请制的,我不会通过任何渠道给出加群的方式,包括群号、二维码等。<br/>
如果你认为你对知识点编排的整体逻辑能提供想法、或者拥有较多的算法竞赛教学经验愿意分享、或者掌握了一些在算法竞赛中不常见的数论技术、或者对一些数论题有独到的理解,欢迎你通过 QQ 联系我(3507898808),我会将你拉进群。
## 编写指南
内容:
- 翻译时丢弃人名形容词后缀([带后缀的数学家名字,例如「abelian」,在译为中文而保留英文名字「abel」时,是否应该保留后缀?](https://www.zhihu.com/question/54747550))。
- 减少单页文字数量。
格式:
- 行间数学公式优先考虑使用 `\[ \]` 或 `\begin{align*} \end{align*}`,记得在前后文添加 `%` 注释防止多余换行。
- 关于上一条中的多余换行问题,注意 `center` 环境前后是否分段应由上下文决定。
- 换行后手动缩进记得添加 `\-`。
- mymulticols 环境相比 multicol 宏包的 multicols 环境,删除了附加垂直间距,并提供对开头与(或)结尾为 list(itemize、enumerate、description)的适配(添加对应的垂直 `\topsep` 间距)(具体见自定义文档类)。
关于动画:
- 在简单页面,尽量多地使用 `\pause` 进行简单动画,而不是复杂的 overlay specification 例如 `only`、`uncover` 等。
- 为了与 `\pause` 相符,应使用 `\uncover` 和 `uncoverenv` 环境,而不是 `\visible` 和 `visibleevn` 环境。这也方便他人进行 `\setbeamercovered{transparent}` 等设置。<br/>
注意此时要考虑到 `uncover` 并未隐藏内容而只是增加透明度,所以可以出现内层 `only` 的 overlay specification 超出外层的 `uncover` 的情况。并且需要尽量避免 `uncover` 或其他 overlay specification(非 `only`)的嵌套造成透明度不正确,也需要避免 `\pause` 后的 `uncover` 或其他 overlay specification(非 `only`),或 `uncover` 或其他 overlay specification(非 `only`)内部的 `\pause`,而连续的 `\pause` 当然是允许的。
- 在 `\pause` 需要嵌套在 `only` 内部时,使用与 `only` 同步的 `\pause` 而非 `\pause[number]`(否则可能造成页脚消失),见 Part 1 中 Euclid 算法一页(frame 45)。
- PDF 最好要经过 `\setbeamercovered{transparent}` 和 `\setbeamercovered{invisible}` 两重测试。
## 关于课件与讲稿的分离
此处,**课件**(**lecture slides**)指类似使用 PowerPoint、LaTeX beamer、Markdown Slidev 等工具制作的幻灯片(presentation),而**讲稿**(**handouts**)指类似使用 Microsoft Word、LaTeX article、Markdown 等工具进行无复杂格式的竖直排版的文字文件,需要与相关课件配套,并且有着适合讲课者通过联系前后内容和观察篇幅以控制节奏和展开细节、以及适合听课者针对细节复习和梳理前后内容的特征。
有意见指出课件应该控制文字内容的比重,多使用图示并利用课件的动画效果(尽管 beamer 没有“动画”),不要事无巨细地展开细节。关于这一点,我持**保留意见**,本系列课件的目标之一就是**覆盖细节的知识点**,如果不将它们花费篇幅展示出来则无法达成这一目标。
但课件与讲稿的分离仍然是**值得研究**的,可以在讲稿中提供**延伸阅读内容**,提供更多**例题和习题**(以及对应的分析或题解),和展示**不方便在课件中给出**的内容(例如会打断听课者思路的过于细节、与后文不会产生联系的内容(但仍是有价值的知识点或 trick,或能从冷门角度给出理解),这种现象在目前课件中已有一些例子)。
基于此,讲稿可以提供更多详细信息,同时课件中的一些细节内容**可以被删除**,即要么作为讲课者可以参考讲稿**自由选择是否插入**的内容、要么作为**补充阅读资料**。进一步地,课件中的文段也**不需要有连贯的上下文**,而可以只使用**关键词句串起前后逻辑**,完整连贯的上下文应由讲课者参考讲稿通过讲课时的口头表达提供。
应当将讲稿视作系列课件的一部分,即认为若缺少了讲稿提供的内容,系列课件将是不完整的,但仍需确保当听课者只能接触课件时,能够拥有预期的听课体验。
## 自定义文档类与自定义宏包
使用根目录下的 `pkslide.cls` 作为文档类和 `pkntcpslide.sty` 作为宏包以支持**结构化和语义化的编写**,这也是 LaTeX 写作的宗旨之一。
`pkslide` 以 `ctexbeamer` 文档类为基础,拥有以下特性:
- 选定了本人喜欢的主题 Berlin;
- 修改了页眉(headline)格式(显示“小小节”);
- 修改了页脚(footline)格式(换用 infolines 主题的单行形式);
- 更换了汉字字体(思源黑体、思源宋体、方正黑仿、霞鹜文楷);
- 将数学公式字体调整为衬线体;
- 减小了文字页边距以显示更多内容;
- 自动在课件开头插入标题页、关于页、目录页;
- 自动在每节开头插入节标题;
- 自动在小小节处插入“当前进度”页面;
- 定义 `\emptyline` 命令以结构化地满足竖向空行的需求;
- 定义 `\textboldcolor` 命令以满足在水平模式中“变色 + 文字加粗 + 公式加粗”的需求,在数学模式中也可以使用;
- 定义 `\fdf` 命令,调用 `\textboldcolor` 命令,满足强调概念定义(first-define)和中英文对照表的需求。
- 定义 `structuregreen` 环境,满足课件内容重心切换时,切换颜色主题的需求(例如,从知识点切换到例题时);
- 定义 `\firstauthor`、`\firstinstitute` 命令,以更便捷地设置作者信息、适应 OIer/XCPCer 中常见的使用昵称(网名、用户名、ID、姓名缩写)的需求、支持机构(学校)英文名显示;
- 定义 `\addauthor`、`\addinstitute` 命令,支持以相同格式添加作者和机构;
- 定义 `\originalfinaldate` 命令,以有选择性地显示初版时间和编译时间;
- 等等……(仍在更新)
`pkslide` 文档类
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【目标受众】: 本项目适合IT相关专业各种计算机技术的源代码和项目资料,如计科、人工智能、通信工程、自动化和电子信息等的在校学生、老师或者企业员工下载使用。 也适合小白学习进阶,可以用作比赛项目、可以进行项目复刻去参加同赛道比赛。 【资源内容】: 源码与竞赛资料:教育部认可的大学生竞赛备赛资料代码、源码、竞赛总结。 功能与质量保证:这个资源库是一个宝贵的学习平台,有助于他们深入了解计算机技术的原理和应用。这些源码经过测试和验证,可以直接运行,方便学生快速上手并开始实践。 【应用场景】: 竞赛准备:适用于各种教育部认可的竞赛,如全国电子设计大赛、全国大学生智能汽车竞赛等,他们可以借助这些资料了解竞赛的规则、要求和技巧。 学习与项目开发:可以用作毕设、课设、作业和竞赛项目的开发基础,可以使用这些源码作为项目开发的基础,快速构建出具有竞争力的作品。 【互动与交流】: 资料鼓励下载和使用这些资源,并欢迎学习者进行沟通交流、互相学习、共同进步。这种互动式的学习方式有助于形成良好的学习氛围,促进知识的共享和传播,为计算机相关专业的学习者提供了一个全面的学习和发展平台。
资源推荐
资源详情
资源评论
收起资源包目录
算法竞赛中的数论 – 系列课件.zip (26个子文件)
资料总结
misc
logo.png 28KB
fonts
FZHeiFJ-R.OTF 5.09MB
LXGWWenKai-Bold.ttf 14.79MB
SourceHanSerifSC-LICENSE 4KB
LXGWWenKai-LICENSE 4KB
CascadiaMono-SemiLight.otf 279KB
CascadiaMono-SemiBoldItalic.otf 168KB
CascadiaMono-LICENSE 4KB
SourceHanSansSC-LICENSE 4KB
SourceHanSansSC-Bold.otf 16.21MB
FZHeiFJ-B.OTF 4.98MB
SourceHanSansSC-Regular.otf 15.68MB
SourceHanSerifSC-Bold.otf 24.24MB
CascadiaMono-SemiBold.otf 285KB
CascadiaMono-SemiLightItalic.otf 165KB
LXGWWenKai-Regular.ttf 14.78MB
SourceHanSerifSC-Regular.otf 23.3MB
.github
workflows
release.yml 4KB
LICENSE 34KB
pkslide.cls 13KB
tex-part-1
NTCP-Part-1.tex 74KB
pics
prime.png 337KB
division_structure.tex 7KB
.gitignore 137B
tex-format-test
NTCP-Format-Test.tex 16KB
README.md 8KB
共 26 条
- 1
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功