数据结构/算法
文章平均质量分 63
mbxc816
这个作者很懒,什么都没留下…
展开
-
DP与贪心的区别
拜读《算法导论》至DP和贪心算法处,觉得有必要理一下思路。 书上对DP介绍了几经典的案例,LCS,矩阵连乘与最优二叉搜索都是很经典的应用。DP是一种从下至上的优化算法,其实对于寻优,至上而下的寻优算法从理论上也是可行的,然后之下而上效率比至上而下大大提高,原因是,当我们采用至上而下的递归式时,实际上做了许多重复的运算,递归树对重复问题的运算结果其实只需运算一次,再次用到时只需读取。本人转载 2012-01-06 10:49:26 · 2697 阅读 · 1 评论 -
网络流题目集锦
最大流POJ 1273 Drainage DitchesPOJ 1274 The Perfect Stall (二分图匹配)POJ 1698 Alice's ChancePOJ 1459 Power NetworkPOJ 2112 Optimal Milking (二分)POJ 2455 Secret Milking Machine (二分)POJ 3189 Stead转载 2012-01-04 16:29:45 · 420 阅读 · 0 评论 -
并行计算中的粒度
并发和并行:今天和别人讨论问题,说到了现在要做的一个项目。要做大规模的并行模拟事件的模拟。问我是否可以在GPU上实现。我们这里拿一群人来分一盒饼干来做例子。一群人要怎么来分这些饼干啦?这里有M个饼干,有N个人要分这个饼干。并发,就是每一个哪一个小饼干,然后各自吃各自的饼干,然后每一轮N个人就分掉了N个饼干。当然这里假设M比N大。并行,就是N个人同时先把一个饼干分了,吃完以后再接着分下面的M-1个饼转载 2012-01-04 16:19:49 · 658 阅读 · 0 评论 -
追MM与算法
动态规划,基本上就是说: 你追一个MM的时候,需要对该MM身边的各闺中密友都好,这样你追MM这个问题 就分解为对其MM朋友的问题,只有把这些问题都解决了,最终你才能追到MM。 因此,该问题适用于聪明的MM,懂得"看一个人,不是看他如何对你,而是看 他如何对他人。"的道理,并且对付这样的MM总能得到最优解。但确定是开销 较大,因为每个子问题都要好好对待。。。。 贪心法,基转载 2012-01-04 16:12:02 · 510 阅读 · 0 评论 -
欧拉函数
欧拉函数的定义:E(k)=([1,n-1]中与n互质的整数个数). 因为任意正整数都可以唯一表示成如下形式: k=p1^a1*p2^a2*……*pi^ai;(即分解质因数形式) 可以推出:E(k)=(p1-1)(p2-1)……(pi-1)*(p1^(a1-1))(p2^(a2-1))……(pi^(ai-1))转载 2012-01-24 22:39:34 · 8864 阅读 · 0 评论 -
最大子段和:线性序列的最大子段和的三种解法
//线性序列的最大子段和的三种解法1. 蛮力法int MaxSubSum1(int* arr, int n, int& iPos, int& jPos){ int sum = 0; // i和j是子串的起始位置。 for (int i = 0; i < n; ++i) for (int原创 2012-01-12 17:04:22 · 538 阅读 · 0 评论 -
数学类题目小结
数学类题目小结 从放暑假前周sir给我讲了一个用polya计数法和burnside定理做的题目(pku2409)后,突然觉得组合数学挺有意思,然后从那时起到现在几乎都在做这类的题目。做到现在感觉这类题目的一些基本知识点都差不多有所了解了,水题也刷了不少,但还有很多难题自己实在是做不动,所以准备把这类题目先放一放,然后把前段时间做的水题整理一下(供以后的初学者参考,大牛就不要看了哈,都转载 2012-01-13 02:00:30 · 539 阅读 · 0 评论 -
八数码问题
八数码问题一.八数码问题八数码问题也称为九宫问题。在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格,与空格相邻的棋子可以移到空格中。要求解决的问题是:给出一个初始状态和一个目标状态,找出一种从初始转变成目标状态的移动棋子步数最少的移动步骤。所谓问题的一个状态就是棋子在棋盘上的一种摆法。棋子移动后,状态就会发生改变。解八数码问题实际上转载 2012-01-11 10:46:14 · 2132 阅读 · 0 评论 -
简述几种取石子
很经典的问题。这里汇总一下,参考大牛JBY的论文~~ 第一种,是一堆N个石子,每次取最多K个。取胜关键:每次与对方凑成(K+1)个石子。1)若N mod (K + 1) == 0,则后取者胜;2)若N mod (K + 1) != 0,则先取者胜。 第二种,是N堆石子,第i堆有ai个。每次从一堆中取。(本题) 利用异或运算1)若a1 ^ a2 ^ a3转载 2012-01-10 19:55:19 · 402 阅读 · 0 评论 -
数据结构-超强超实用高精度模板之高精度bign类与高精度运算符重载
高精度运算超强模板,高度模仿了 unsigned int类型,有木有!!,流输入输出,各种运算符应有尽有,包括加减乘除求余前缀后缀加加减减 和各种X等运算和逻辑运算,还解决了高位置0问题,国家信得过产品!!如果发现BUG或者有不足之处 请留言 谢谢~~以下是心血代码/*代码开始*/#include#includeusing std::istream;using std::o转载 2012-01-11 01:08:05 · 2364 阅读 · 3 评论 -
0/1背包问题详解
0/1背包问题 1. 问题描述 给定一个载重量为m,n个物品,其重量为wi,价值为vi,1原创 2012-01-11 10:40:41 · 648 阅读 · 0 评论 -
八皇后问题及其扩展N皇后问题(经典回溯算法)
八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名 的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后 来有人用图论的方法解出92种结果。事实上就是有92种解法转载 2012-01-11 10:44:51 · 774 阅读 · 0 评论 -
Diffie-Hellman算法
Diffie-Hellman 算法描述: 目前被许多商业产品交易采用。HD 算法为公开的密钥算法,发明于1976年。该算法不能用于加密或解密,而是用于密钥的传输和分配。 DH 算法的安全性体现在:在有限域上计算离散对数非常困难。 离散对数 :定义素数p的原始根(primitive root)为这样一个数,它能生成1~p-1所有数的一个数。现设a为p的原始根,则转载 2012-01-10 11:18:48 · 14291 阅读 · 0 评论 -
时间复杂度
时间复杂度1.时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。2.计算方法 1.转载 2012-01-07 14:36:09 · 317 阅读 · 0 评论 -
【轻松学排序算法】眼睛直观感受几种常用排序算法
1 快速排序介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来,且在大部分真实世界的数据,可以决定设计的选择,减少所需时间的二转载 2012-01-06 10:57:10 · 372 阅读 · 0 评论