
算法资料
文章平均质量分 77
ultimater
桃李争辉飒爽英姿斗艳,成功失败总是欢乐伤悲!
展开
-
背包问题九讲
P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是: f[i][v]=m转载 2012-07-21 08:01:31 · 1314 阅读 · 0 评论 -
搜索剪枝
搜索算法的通用优化方法 [DFS][搜索剪枝]在很多情况下,我们已经找到了一组比较好的解。但是计算机仍然会义无返顾地去搜索比它更“劣”的其他解,搜索到后也只能回溯。为了避免出现这种情况,我们需要灵活地去定制回溯搜索的边界。*例题 计算机网络连接要将n(n台计算机连成网络,连接方法:去除首尾两台计算机与一台计算机相连以外,其他计算机只与两台计算机相连。连接的长度则为计算机连接的电缆的长度。求:一种转载 2012-08-06 06:10:17 · 6384 阅读 · 0 评论 -
十个利用矩阵乘法解决的经典题目-Matrix67
好像目前还没有这方面题目的总结。这几天连续看到四个问这类题目的人,今天在这里简单写一下。这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质。 不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符。在数学中,一个矩阵说穿了就是一个二维数组。一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵转载 2012-07-21 14:27:13 · 2402 阅读 · 0 评论 -
轻松理解扩展欧几里德算法
欧几里德算法 用来求两个数的最大公约数的算法。具体如下 int gcd(int a,int b){ if(b == 0) return a; return gcd(b,a%b); } 首先看正确性证明,实际上需要证明gcd(a,b)=gcd(b,a%b),我们只要证明gcd(a,b)=gcd(a-b,b)即可,因为可以由此逐步扩展为gcd(a,b) = gcd(a转载 2012-08-10 10:09:27 · 744 阅读 · 0 评论 -
ACM数论
1、本原勾股数: 概念:一个三元组(a,b,c),其中a,b,c没有公因数而且满足:a^2+b^2=c^2 首先,这种本原勾股数的个数是无限的,而且构造的条件满足: a=s*t,b=(s^2-t^2)/2,c=(s^2+t^2)/2 其中s>t>=1是任意没有公因数的奇数! 由以上概念就可以导出任意一个本原勾股数组。 2、素数计数(素数定理) 令转载 2012-07-21 14:24:26 · 3075 阅读 · 1 评论 -
看完这个你的位运算学得就差不多了
位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 " 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被挤掉,对于左边移出的转载 2012-09-09 18:55:34 · 702 阅读 · 0 评论