- ISBN:9787302571278
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:448
- 出版时间:2021-05-01
- 条形码:9787302571278 ; 978-7-302-57127-8
本书特色
《算法竞赛入门经典——算法实现》是累计畅销22万册的信息学奥赛红宝书——《算法竞赛入门经典》的配套算法代码实现书。 这是一本你可以在日常练习、赛前的高强度练习以及竞赛现场,快速查阅和调用代码,助你通关夺魁的书。 本书全面覆盖ACM/ICPC/NOI/NOIP等信息学竞赛的经典题型和算法要点,239道真题,240余套代码,所有算法都经过多次优化、打磨,在历届竞赛中被广泛采用,大放异彩。借助这些代码模板,你可以大大减轻因反复琢磨代码实现细节而导致调试时间不够用的压力。 这不是一本入门图书。想看懂它,需要你具备一定的算法基础。这本书,如果你能独立完成大部分,你的算法能力完全能达到现今IT公司内程序员的中上水准。 《算法竞赛入门经典——算法实现》——ACM/ICPC/NOI高效备考+完美通关**案头工具书!
内容简介
《算法竞赛入门经典——算法实现》精选《算法竞赛入门经典(第2版)》和《算法竞赛入门经典——训练指南(升级版)》中的经典题目,按算法要点和竞赛考点重新进行分拆和归类,提供了240余套简洁、高效、规范的完整代码模板。此外,也加入了一些虽然未在两本书中出现,但实际上对初学者入门非常重要的题目代码。借助于这些模板,读者在练习环节和比赛时,可大大减轻因来回琢磨代码实现细节而导致调试时间大幅增加的压力。 《算法竞赛入门经典——算法实现》共分7章,第1章介绍C++编程基础与STL,第2章介绍算法设计与优化,第3章介绍数学相关算法,第4章介绍数据结构,第5章介绍字符串,第6章介绍计算几何,第7章介绍图论。 《算法竞赛入门经典——算法实现》题目覆盖了ACM/ICPC/NOI/NOIP等算法竞赛的大多数经典题型和细分算法要点,内容全面,信息量大,非常适合选手在练习环节和比赛时参考使用。
目录
目录
第1章 C++编程基础与STL 1
第2章 算法设计与优化 20
2.1 算法优化策略 20
2.2 贪心算法 28
2.3 搜索算法 34
2.4 动态规划算法 60
第3章 数学 91
3.1 数论 91
3.2 组合计数 113
3.3 概率与期望 127
3.4 组合游戏 134
3.5 置换 136
3.6 矩阵和线性方程组 139
3.7 快速傅里叶变换(FFT) 146
3.8 数值方法 156
3.9 数学专题 159
第4章 数据结构 165
4.1 基础数据结构 165
4.2 区间信息维护 188
4.3 排序二叉树 202
4.4 树的经典问题与方法 212
4.5 动态树与LCT 229
4.6 离线算法 237
4.7 kd-Tree 249
4.8 可持久化数据结构 254
4.9 嵌套和分块数据结构 263
第5章 字符串 275
5.1 Trie、KMP以及AC自动机 275
5.2 后缀数组、Hash和Manacher 282
5.3 后缀自动机 287
第6章 计算几何 298
6.1 二维几何基础 298
6.2 与圆有关的计算问题 302
6.3 二维几何常用算法 311
6.4 三维几何基础 328
6.5 几何专题算法 342
第7章 图论 362
7.1 深度优先遍历 362
7.2 *短路问题 374
7.3 生成树相关问题 395
7.4 二分图匹配 404
7.5 网络流问题 420
节选
第1章 C++编程基础与STL STL是C++标准模板库(Standard Template Library)的简称,使用得当能够省去不少代码篇幅。 例1-1 【输入输出函数】TeX中的引号(Tex Quotes, UVa 272) 在TeX中,左双引号是“``”,右双引号是“''”。输入一篇包含双引号的文章,你的任务是把它转换成TeX的格式。 【样例输入】 "To be or not to be," quoth the Bard, "that is the question". 【样例输出】 ``To be or not to be, '' quoth the Bard, ``that is the question''. 【代码实现】 // 陈锋 #include int main() { int c, first = 1; char s[2][4] = {"''", "``"}; while ((c = getchar()) != EOF) { if (c == '"') printf("%s", s[first]), first ^= 1; else printf("%c", c); } return 0; } /* 算法分析请参考:《算法竞赛入门经典(第2版)》例题3-1 注意:本题是如何使用first变量及其xor运算来控制是否为首次输出的 */ 例1-2 【计数排序与IO优化】年龄排序(Age Sort, UVa 11462) 给定n(0<n≤2 000 000)个居民的年龄(都是1~100的整数),把它们按照从小到大的顺序输出。 【代码实现】 // 陈锋 #include using namespace std; #define _for(i, a, b) for (int i = (a); i = 0; j--) putchar('0' + buf[j]); // 逆序输出 } int main() { int n, x, c[101]; while(n = readint()) { memset(c, 0, sizeof(c)); for(int i = 0; i > T; while (T--) { cin >> s; int ans = 0, n = s.length(); for (int i = 1; i < n; i++) if (less_than(s, i, ans)) ans = i; for (int i = 0; i < n; i++) cout << (s[(ans + i) % n]); cout << endl; } return 0; } /* 算法分析请参考:《算法竞赛入门经典(第2版)》例题3-6 注意:main()函数的**行可以加速STL的IO操作,但不能再和stdio中的printf混用 同类问题:Periodic Strings, UVa 455 */
作者简介
陈锋,任职于厦门宇道信隆信息科技有限公司,担任技术总监职务,专注于人工智能以及算法技术在金融科技领域的应用。同时担任四川大学ACM/ICPC算法竞赛集训队特邀指导老师,榕阳编程NOI、NOIP指导教练。所带学员多次获得ICPC金/银牌,进入NOI省队等。曾出版《算法竞赛入门经典——训练指南》《算法竞赛入门经典——习题与解答》《算法竞赛入门经典——算法实现》等畅销书。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0