05 2019 档案

摘要:map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上 阅读全文
posted @ 2019-05-17 16:42 莫莫君不恋爱 阅读(593) 评论(0) 推荐(0)
摘要:头文件#include<bitset> 阅读全文
posted @ 2019-05-16 22:04 莫莫君不恋爱 阅读(289) 评论(0) 推荐(0)
摘要:1. 通过逐项计算这个递推式,可以在O(n)的时间内算出答案。对于 n 的规模过大的话效率太低。通过求出通项也不行。斐波那契数列的通项为: 而用矩阵可以高效地求出第 n 项的值。 把斐波那契数列的递推式表示成矩阵就得到了下面的式子 记这个矩阵为 A,则有 因此只要求出 An 就可以求出 Fn 了。复 阅读全文
posted @ 2019-05-15 21:10 莫莫君不恋爱 阅读(2144) 评论(0) 推荐(0)
摘要:分桶法(bucket method) 是把一排物品或者平面分成桶,每个桶分别维护自己内部的信息,以达到高效计算的目的的方法。 未完待续 阅读全文
posted @ 2019-05-15 19:58 莫莫君不恋爱 阅读(360) 评论(0) 推荐(0)
摘要:树状数组(Binary Indexed Tree,BIT) 是能够完成下述操作的数据结构。 给一个初始值全为 0 的数列 a1, a2, ..., an (1)给定 i,计算 a1+a2+...+ai (2)给定 i 和 x,执行 ai += x 1.基于线段树的实现 如果使用线段树,只需要做少许修 阅读全文
posted @ 2019-05-14 21:47 莫莫君不恋爱 阅读(424) 评论(0) 推荐(0)
摘要:头文件:#include<iostream> 函数原型:iterator unique(iterator it_1,iterator it_2); 作用:元素去重,即”删除”序列中所有相邻的重复元素(只保留一个)。此处的删除,并不是真的删除,而是指不停的把后面不重复的元素移到前面来,也可以说是用不重 阅读全文
posted @ 2019-05-14 20:35 莫莫君不恋爱 阅读(382) 评论(0) 推荐(0)
摘要:准备好 w * h 的数组,并记录是否有直线通过,然后利用深度优先搜索可以求出被分割出的区域的个数。但是这个问题中 w 和 h 最大为10000000,所以没办法创建 w * h 的数组。因此我们可以使用坐标离散化这一技巧。 如上图所示,将前后没有变化的行列消除后并不会影响区域的个数。 数组里只需要 阅读全文
posted @ 2019-05-14 20:15 莫莫君不恋爱 阅读(415) 评论(0) 推荐(0)
摘要:1. 从 4 个数列中选择的话总共有 n4 种情况,所以全都判断一遍不可行。不过将它们对半分成 AB 和 CD 再考虑,就可以快速解决了。从两个数列中选择的话只有 n2 种组合,所以可以进行枚举。先从 A、B中取出 a、b 后,为了使总和为 0 则需要从 C、D中取出 c + d = - a - b 阅读全文
posted @ 2019-05-13 21:54 莫莫君不恋爱 阅读(427) 评论(0) 推荐(0)
摘要:首先考虑一下只有一个球的情况。这时只是单纯的物理问题。从高为 H 的位置下落的话需要花费的时间是,这样的话,在 T 时刻,令 k 为满足 kt ≤ T 的最大整数,那么 接下来考虑多个球的情况。乍一看,因为多个球之间会有碰撞,必须对物理运动进行模拟,事实上没有这个必要。回忆一下一个题目 “ Ants 阅读全文
posted @ 2019-05-13 21:43 莫莫君不恋爱 阅读(650) 评论(0) 推荐(0)
摘要:在反转那篇文章中,为了尝试第一行的所有可能性,使用了集合的整数表现。在程序中表示集合的方法有很多种,当元素数比较少时,像这样用二进制码表示比较方便。集合{0, 1, ..., n-1} 的子集 S 可以用如下的方式编码成整数。 像这样表示之后,一些集合运算可以对应地写成如下方式。 (1) 空集Ø > 阅读全文
posted @ 2019-05-13 21:23 莫莫君不恋爱 阅读(1258) 评论(0) 推荐(0)
摘要:1. 对于一个特定的 K 如何求出让所有牛面朝前方的最小操作数。如果把牛的方向作为状态进行搜索的话,由于状态数有 2N 个,是无法在时限内得出答案的。 首先,交换区间反转的顺序对结果是没有影响的。此外,对同一区间进行两次以上的反转是多余的。由此,问题就转化成了求需要被反转区间的集合。先考虑一下最左端 阅读全文
posted @ 2019-05-11 17:22 莫莫君不恋爱 阅读(589) 评论(0) 推荐(0)
摘要:尺取法通常是指对数组保存一对下标(起点,终点),然后根据实际情况交替推进两个端点直到得出答案的方法。 1. 由于所有的元素都大于零,如果子序列 [s, t] 满足 as + .... at ≥ S,那么对于任何的 t < t' 一定有 as + .... at‘-1 ≥ S。 此外对于区间[ s, 阅读全文
posted @ 2019-05-10 21:01 莫莫君不恋爱 阅读(392) 评论(0) 推荐(0)
摘要:floor(x),也写做Floor(x),其功能是“向下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接取按照数轴上最接近要求值的左边值,即不大于要求值的最大的那个整数值)。 floor(x),也写做Floor(x),其功能是“向下取整”,或者说“向下舍入”,即取 阅读全文
posted @ 2019-05-10 20:28 莫莫君不恋爱 阅读(4101) 评论(0) 推荐(0)
摘要:二分搜索法是通过不断缩小可能存在的范围,从而求得问题最优解的方法。 1. 从有序数组中查找某个值 给定长度为 n 的单调非递减数列 a0......an,和一个数 k,求满足 ai ≥ k 条件的最小的 i,不存在的情况下输出n。 求满足某个条件C(x)的最小的 x 这一问题。对于任意满足C(x) 阅读全文
posted @ 2019-05-10 20:23 莫莫君不恋爱 阅读(440) 评论(0) 推荐(0)
摘要:1.定义: 如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统(system of difference constraints)。亦即,差分约束系统是求解关于一组变量的特殊不等式组的方法。 求解差分约束系统,可以转化成 阅读全文
posted @ 2019-05-06 20:06 莫莫君不恋爱 阅读(463) 评论(0) 推荐(0)