1.对程序竞赛中的基础算法和经典问题进行了汇总,分为准备篇、初级篇、中级篇与高级篇,难度逐渐递增,适合初学者入门。 2.作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由浅入深、由易及难的细致讲解,并介绍了许多实用技巧。每章后附有习题,供读者练习,巩固所学。 3.此书其实比紫书更适合作为算法竞赛入门书籍,书中许多例题都是首先提出一个朴素算法,然后逐步优化,再优化。为读者再现了解题的过程。对初学者来说很有启发。 4.书中的例题都十分经典且都遵循了,先分析,再实现的叙述顺序。先教你怎么去想,然后怎么去…

2018年05月13日 0条评论 990点热度 5人点赞 阅读全文

题目大意: 给定一段数字序列(有正负),求最大的子串和以及该子串的始末位置。   解决: 使用在线处理方法处理最大子串和,时间复杂度O(N) 设置临时最大和sum,最大和max 遍历数字序列将a[i]累加到sum 1.若sum > max, 则更新max值和子串尾下标 2.若sum <= max, 则继续向后累加 遍历过程中,当发现sum < 0时,使sum=0并将子串起点下标后移   附:因为序列中每个数字仅被处理一次,所以复杂度O(N) 代码 [crayon-5effb52…

2018年04月26日 0条评论 695点热度 0人点赞 阅读全文

动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力、建模抽象能力、灵活度。 ****************************************************************************************** 动态规划(英语:Dynamic programming,DP)是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和最优子结…

2018年04月18日 0条评论 1069点热度 0人点赞 阅读全文