编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

编程学习《挑战程序设计竞赛》,有资源

wxchong 2024-10-18 14:28:06 开源技术 8 ℃ 0 评论

《挑战程序设计竞赛(第2版)》对程序设计竞赛中的基础算法和经典问题进行了汇总,分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由浅入深、由易及难的细致讲解,并介绍了许多实用技巧。每章后附有习题,供读者练习,巩固所学。

《挑战程序设计竞赛(第2版)》适合程序设计人员、程序设计竞赛爱好者以及高校计算机专业师生阅读。

本书的作者们参加过众多程序设计竞赛,在平时的练习和学习中,也获得了各种各样的知识与技巧,本书将这些知识技巧总结成册,主要介绍算法及其在相关问题中的应用。本书依照由易及难的顺序对问题进行讲解,章节的编排也参考了主题的难易程度及其相互的联系,内容较多的主题则按难易程度划分为多个子主题分别介绍。各个主题由算法介绍和例题讲解穿插而成。

只要是具有编程基础知识的读者,均适合阅读本书。书中的源代码均用C++实现,不过只用到了其基本功能,所以即便读者不熟悉C++也不影响阅读。

部分目录

第1章 蓄势待发——准备篇 1

1.1 何谓程序设计竞赛 2

1.2 最负盛名的程序设计竞赛 5

1.2.1 世界规模的大赛——google code jam(gcj) 5

1.2.2 向高排名看齐!——topcoder 5

1.2.3 历史最悠久的竞赛—— acm-icpc 6

1.2.4 面向中学生的信息学奥林匹克竞赛——joi-ioi 6

1.2.5 通过网络自动评测——online judge(oj) 6

1.3 本书的使用方法 7

1.3.1 本书所涉及的内容 7

1.3.2 所用的编程语言 7

1.3.3 题目描述的处理 7

1.3.4 程序结构 7

1.3.5 练习题 8

1.3.6 读透本书后更上一层楼的练习方法 8

1.4 如何提交解答 9

1.4.1 poj的提交方法 9

1.4.2 gcj的提交方法 11

1.5 以高效的算法为目标 15

.1.5.1 什么是复杂度 15

1.5.2 关于运行时间 15

1.6 轻松热身 16

1.6.1 先从简单题开始 16

1.6.2 poj的题目ants 18

1.6.3 难度增加的抽签问题 20

第2章 初出茅庐——初级篇 25

2.1 最基础的“穷竭搜索” 26

2.1.1 递归函数 26

2.1.2 栈 27

2.1.3 队列 28

2.1.4 深度优先搜索 29

2.1.5 宽度优先搜索 33

2.1.6 特殊状态的枚举 37

2.1.7 剪枝 38

2.2 一往直前!贪心法 39

2.2.1 硬币问题 39

2.2.2 区间问题 40

2.2.3 字典序最小问题 43

2.2.4 其他例题 45

2.3 记录结果再利用的“动态规划” 51

2.3.1 记忆化搜索与动态规划 51

2.3.2 进一步探讨递推关系 57

2.3.3 有关计数问题的dp 66

2.4 加工并存储数据的数据结构 70

2.4.1 树和二叉树 70

2.4.2 优先队列和堆 71

2.4.3 二叉搜索树 77

2.4.4 并查集 84

2.5 它们其实都是“图” 91

2.5.1 图是什么 91

2.5.2 图的表示 94

2.5.3 图的搜索 97

2.5.4 最短路问题 99

2.5.5 最小生成树 105

2.5.6 应用问题 107

2.6 数学问题的解题窍门 113

2.6.1 辗转相除法 113

2.6.2 有关素数的基础算法 117

2.6.3 模运算 121

2.6.4 快速幂运算 122

2.7 一起来挑战gcj的题目(1) 125

2.7.1 minimum scalar product 125

2.7.2 crazy rows 127

2.7.3 bribe the prisoners 129

2.7.4 millionaire 132

转发,关注,私信小编即可获取电子版资源。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表