摘要: 前缀和是一种重要的预处理,能大大降低查询的时间复杂度。 最简单的一道题就是给定 n 个数和 m 次询问,每次询问一段区间的和。求一个 O(n + m) 的做法。 用 O(n) 前缀和预处理,O(m) 询问。 主要代码 升级版 给定一个n*n的矩阵,找一个最大的子矩阵,使得这个子矩阵里面的元素和最大。 阅读全文
posted @ 2018-02-06 20:52 mrclr 阅读(23257) 评论(3) 推荐(10) 编辑
摘要: 先看一到例题 给定 n 个数(可能相同),出现次数最多的数出现了多少次。(ai <= 10 ^ 9) 嗯……这道题看似一道水题,只要开一个 vis 数组记录每一个数字出现的次数即可,比如 vis[a[i]]++。但是值得注意的是,ai可能非常大,这就导致 vis 数组会开不下,因此,就要用到离散化。 阅读全文
posted @ 2018-02-06 16:31 mrclr 阅读(448) 评论(0) 推荐(0) 编辑