acm从菜鸟开始
文章平均质量分 70
whitesorrow
正在努力培养自己的各项专业知识(笑)
展开
-
acm算法之三大背包问题
三大背包问题 1.01背包问题 有N件物品和一个容量为V的背包。第i件物品的体积是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 状态转移方程: f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]} 这个方程非常重要,基本上所有跟背包相关的问题的方程都是由它衍生出来的 伪码: for i=1..N for v=V..0转载 2015-05-17 20:06:46 · 2076 阅读 · 0 评论 -
acm算法之std::queue与std::stack
队列(queue)与栈(stack) 队列(queue) 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素成为出队。因为队列只允许在一段插入转载 2015-05-17 20:27:37 · 592 阅读 · 0 评论 -
acm算法之树状数组
树状数组 核心思想: 如果我们只在单个元素上做文章,可能不会有太大的收获。但是如果对于这些数据元素进行合理的划分,然后对于整体进行操作,往往会有神奇的功效。 intLowbit(int x){return x&(-x);} 解释: Lowbit的作用是返回2^(二进制表示的x的末尾0的个数) 相关操作: 1、修改第i个元素: 从图示中我们可以看出,修改第i个元素,为了维护数原创 2015-05-17 20:02:40 · 611 阅读 · 0 评论 -
acm算法之线段树
线段树 (1)基础线段树 例题:(单点修改 区间求解) Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增原创 2015-05-17 19:58:21 · 1293 阅读 · 0 评论 -
acm算法之c++标准库及命名空间std
c++标准库及 命名空间std 命名空间std C++标准中引入命名空间的概念,是为了解决不同模块或者函数库中相同标识符冲突的问题。有了命名空间的概念,标识符就被限制在特定的范围(函数)内,不会引起命名冲突。最典型的例子就是std命名空间,C++标准库中所有标识符都包含在该命名空间中。 如果确信在程序中引用某个或者某些程序库不会引起命名冲突(即库中的标识符不会在程序中代表其他函数名称转载 2015-05-17 20:19:18 · 510 阅读 · 0 评论 -
acm算法之最短路问题
最短路问题就是求一个图中从一节点到另一节点的最短路径 (以下代码来自题目实例来自HDU1873) 算法一:Floyd五行算法 时间复杂度n^3 结果:直接求出全部两点之间最短路 适用:小数据,一次求多点之间最短路//Floyd n^3 原版原创 2015-08-02 11:21:50 · 561 阅读 · 0 评论