算法艺术与信息学竞赛

算法 专栏收录该内容
3 篇文章 0 订阅
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

算法艺术信息学竞赛 刘汝佳 pdf格式 清华大学出版社 内容简介 · · · · · · 《算法艺术信息学竞赛》较为系统和全面地介绍了算法学最基本的知识。这些知识和技巧既是高等院校“算法与数据结构”课程的主要内容,也是国际青少年信息学奥林匹克(IOI)竞赛和ACM/ICPC国际大学生程序设计竞赛中所需要的。书中分析了相当数量的问题。 本书共3章。第1章介绍算法与数据结构;第2章介绍数学知识和方法;第3章介绍计算机几何。全书内容丰富,分析透彻,启发性强,既适合读者自学,也适合于课堂讲授。 本书适用于各个层次的信息学爱好者、参赛选手、辅导老师和高等院校计算机专业的师生。本书既是信息学入门和提高的好帮手,也是一本内容丰富、新颖的资料集。 目录 · · · · · · 目 录 第1章算法与数据结构 1.1编程的灵魂--数据结构+算法=程序 1.2基本算法 1.2.1枚举 1.2.2贪心法 1.2.3递归与分治法 1.2.4递推 1.3数据结构(1)--入门 1.3.1栈和队列 1.3.2串 1.3.3树和二叉树 1.3.4力瘃其基本算法 1.3.5排序与检索基本算法 1.4数据结构(2)--拓宽和应用举例 1.4.1并查集 1.4.2堆及其变种 1.4.3字典的两种实现方式:哈希表.二叉搜索树 1.4.4两个特殊树结构:线段树和Trie 1.5动态规划 1.5.1动态规划的两种动机 1.5.2常见模型的分析 1.5.3若干经典问题和常见优化方法 1.6状态空间搜索 1.6.1状态空间 1.6.2盲目搜索算法 1.6.3启发式搜索算法 1.6.4博弈问题算法 1.6.5剪枝 *1.6.6专题:路径寻找问题 *1.6.7约束满足问题 第2章数学方法与常见模型 2.1代数方法和模型 2.2数论基础 2.2.1素数和整除问题 2.2.2进位制 2.2.3同余模算术 2.3组合数学初步 2.3.1鸽笼原理和Ramsey定理 2.3.2排列组合和容斥原理 2.3.3群论与Polya定理 2.3.4递推关系与生成函数 2.3.5离散变换与反演 2.4图论基本知识和算法 2.4.1基本概念和定理 2.4.2可行遍性问题简介 2.4.3平面图 2.4.4图的基本算法与应用举例 2.5图论基本算法 2.5.1生成树问题 2.5.2最短路问题 2.5.3网络流问题 2.5.4二分图相关问题和模型 第3章计算机几何初步 3.1位置和方向的世界--计算机几何的基本问题 3.1.1从相交到左右--基本问题的转化 3.1.2左右和前后--叉积和点积 3.2多边形和多面体的相关问题 3.2.1卫兵问题--多边形和多面体的概念 3.2.2求多边形.多面体的容积和重心,高维情形 3.2.3判点在形内形外形上,多面体的情形 3.3打包裹与制造合金--凸包及其应用 3.3.1凸包的普遍性和广泛应用性,凸的定义与优美性质 3.3.2凸包的实现 3.3.3凸包算法正确性与时间效率 3.3.4应用举例 3.3.5凸多边形的深入讨论 3.4几种常用的特殊算法 3.4.1蛋糕被切成几块?--离散化法 3.4.2切蛋糕的周长和面积--扫除法 3.4.3凸包与快速排序--分治法 3.4.4凸包的又一种求法--增量法 3.4.5专题--随机增量算法 参考文献
算法竞赛入门经典(第二版) (算法艺术信息学竞赛) 刘汝佳 pdf格式 文字版 有书签目录 完整版 清华大学出版社 内容简介 · · · · · · 《算法竞赛入门经典(第2版)》是一本算法竞赛的入门与提高教材,把C/C++语言、算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧。全书内容分为12 章,包括程序设计入门、循环结构程序设计、数组和字符串、函数和递归、C++与STL入门、数据结构基础、暴力求解法、高效算法设计、动态规划初步、数学概念与方法、图论模型与算法、高级专题等内容,覆盖了算法竞赛入门和提高所需的主要知识点,并含有大量例题和习题。书中的代码规范、简洁、易懂,不仅能帮助读者理解算法原理,还能教会读者很多实用的编程技巧;书中包含的各种开发、测试和调试技巧也是传统的语言、算法类书籍中难以见到的。 《算法竞赛入门经典(第2版)》可作为全国青少年信息学奥林匹克联赛(NOIP)复赛教材、全国青少年信息学奥林匹克竞赛(NOI)和ACM国际大学生程序设计竞赛(ACM/ICPC)的训练资料,也可作为IT工程师与科研人员的参考用书。 目录 · · · · · · 第1部分 语言篇 第1章 程序设计入门 1 1.1 算术表达式 1 1.2 变量及其输入 3 1.3 顺序结构程序设计 6 1.4 分支结构程序设计 9 1.5 注解与习题 13 1.5.1 C语言、C99、C11及其他 13 1.5.2 数据类型与输入格式 14 1.5.3 习题 15 1.5.4 小结 16 第2章 循环结构程序设计 18 2.1 for循环 18 2.2 while循环和do-while循环 22 2.3 循环的代价 25 2.4 算法竞赛中的输入输出框架 27 2.5 注解与习题 34 2.5.1 习题 34 2.5.2 小结 36 第3章 数组和字符串 37 3.1 数组 37 3.2 字符数组 41 3.3 竞赛题目选讲 45 3.4 注解与习题 53 3.4.1 进位制与整数表示 54 3.4.2 思考题 55 3.4.3 黑盒测试和在线评测系统 55 3.4.4 例题一览与习题 56 3.4.5 小结 59 第4章 函数和递归 61 4.1 自定义函数和结构体 61 4.2 函数调用与参数传递 65 4.2.1 形参与实参 65 4.2.2 调用栈 66 4.2.3 用指针作参数 69 4.2.4 初学者易犯的错误 71 4.2.5 数组作为参数和返回值 71 4.2.6 把函数作为函数的参数 73 4.3 递归 74 4.3.1 递归定义 74 4.3.2 递归函数 75 4.3.3 C语言对递归的支持 75 4.3.4 段错误与栈溢出 77 4.4 竞赛题目选讲 79 4.5 注解与习题 92 4.5.1 头文件、副作用及其他 93 4.5.2 例题一览和习题 95 4.5.3 小结 99 第5章  C++与STL入门 100 5.1 从C到C++ 100 5.1.1 C++版框架 101 5.1.2 引用 102 5.1.3 字符串 103 5.1.4 再谈结构体 105 5.1.5 模板 106 5.2 STL初步 108 5.2.1 排序与检索 108 5.2.2 不定长数组:vector 109 5.2.3 集合:set 112 5.2.4 映射:map 113 5.2.5 栈、队列与优先队列 115 5.2.6 测试STL 120 5.3 应用:大整数类 123 5.3.1 大整数类BigInteger 124 5.3.2 四则运算 125 5.3.3 比较运算符 126 5.4 竞赛题目举例 127 5.5 习题 134 第2部分 基础篇 第6章 数据结构基础 139 6.1 再谈栈和队列 139 6.2 链表 143 6.3 树和二叉树 148 6.3.1 二叉树的编号 148 6.3.2 二叉树的层次遍历 150 6.3.3 二叉树的递归遍历 155 6.3.4 非二叉树 160 6.4 图 162 6.4.1 用DFS求连通块 162 6.4.2 用BFS求最短路 164 6.4.3 拓扑排序 167 6.4.4 欧拉回路 168 6.5 竞赛题目选讲 170 6.6 训练参考 175 第7章 暴力求解法 182 7.1 简单枚举 182 7.2 枚举排列 184 7.2.1 生成1~n的排列 184 7.2.2 生成可重集的排列 185 7.2.3 解答树 186 7.2.4 下一个排列 187 7.3 子集生成 188 7.3.1 增量构造法 188 7.3.2 位向量法 188 7.3.3 二进制法 189 7.4 回溯法 191 7.4.1 八皇后问题 191 7.4.2 其他应用举例 194
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值