Visitors hit counter dreamweaver
上一页 1 2 3 4 5 6 7 8 ··· 26 下一页
摘要: 题目描述:给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2 ,…,n-1。如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。例如: A1={30x35} ; A2={35x15} ;A3={15x5} ;A4={5x10} ;A5={10x20} ;A6={20x25} ;最后的结果为:((A1(A2A3))((A4A5)A6)) 最小的乘次为15125。 解题思路:能用动态规划的一个性质就是最优子结构性质,也就是说计算A[i:j]的最优次序所包含的计算矩阵子琏A[i:k]和A[k+1:j]的次序也是最优的。动态规划算法解此问题... 阅读全文
posted @ 2013-08-01 23:38 Jason Damon 阅读(41639) 评论(3) 推荐(5) 编辑
摘要: 最近在看一些中位数的东西,然后顺便也看了些题目。poj 1723不仅要求到水平位置的最短距离和,还要求水平都相邻的排成一排的最短距离和,即士兵都站成一列。 到y轴的距离好办,按y轴坐标排序,求中位数,然后求所有到中位数的距离和。 但是在x上怎么样才能最短呢?百思不得其解啊,最后看了这篇之后,豁然开朗。 x轴方向,先把x[]排好序,要想移动的距离最短,那么这时的相对位置肯定不变。那么假设a是这个队列的最左边的x坐标,那么它们的关系就有就有 x[0] -> a x[1]-> a + 1 x[2] -> a + 2 ........ x[i]-> a + i 即 x[0] - 阅读全文
posted @ 2013-07-25 23:42 Jason Damon 阅读(1135) 评论(0) 推荐(0) 编辑
摘要: 汇编语言的汇编指令: nasm -f elf xxx.asm 生成xxx.o文件 ld -o xxx xxx.o 生成可执行文件,不用加参数-s ,否则在提取shellcode的十六进制码的时候会看不到设置的标号。 objdump -d -F xxx.o/xxx 查看汇编语言相对应的十六进制码,用来对比提取的是否正确。这个命令非常好。对.o格式的和可执行文件都可用。 od -t x1 xxx 用于查看提出出来的文件的内容。 阅读全文
posted @ 2013-07-07 21:35 Jason Damon 阅读(1329) 评论(0) 推荐(0) 编辑
摘要: 距离上次写算法题目已经有半个月了吧。从20号回学校参加毕业典礼,和舍友,和同学疯狂了十天。很高兴,也很伤感。终于,我也本科毕业了。最终,分离的那一天还是要到来的,我最舍不得的是和海哥还有小强的感情,再也听不到他们的嬉戏打闹的声音,再也听不到他们的狂叫,再也看不到他们疯疯癫癫的样子。现在回想起我们一起的点点滴滴,我的眼泪又忍不住要往下滴了。在这我只想偷偷的告诉你们,我想你们了。 现在我们都开始了自己新的生活了,虽然说我们不能活在过去,但是我们也要相离莫相忘。一定要彼此挂念!题目描述: 给定平面N个点的坐标,找出距离最近的点对以及最近的距离。解题思路: 用分治的方法来解决。按x轴排序,然后... 阅读全文
posted @ 2013-07-07 20:53 Jason Damon 阅读(1883) 评论(1) 推荐(0) 编辑
摘要: ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络地址(IP地址32位)转化为物理地址(MAC地址48位)。ARP协议是属于数据链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核(如驱动)必须知道目的端的硬件地址才能发送数据。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议(ARP)获得的。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。当然,点对点的连接是不需要ARP协议的。 为了解释ARP协议的... 阅读全文
posted @ 2013-07-03 23:34 Jason Damon 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 算法导论在第九章的9.3节中给出了一种最坏情况运行时间为O(n)的选择算法。该算法的基本思想是要保证对数组的划分是个好的划分。要达到这样的目的,我们就可以通过选择中位数来达到一个好的划分。 (1)将所有的数n个以每5个划分为一组共组,将不足5个的那组忽略,然后用任意一种排序算法,因为只对5个数进行排序,所以任取一种排序法就可以了。将每组中的元素排好序再分别取每组的中位数,得到个中位数,把它们存储下来。 (2)取这个中位数的中位数,如果是偶数,就找它的2个中位数中较大的一个作为划分基准。(出自:风仲达) 这样我们就可以得到中位数。然后可以把它应用到利用快排思想来求第K大数的算法中,... 阅读全文
posted @ 2013-07-03 21:19 Jason Damon 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 问题描述:给定一个有n个数的序列集,求最大值和最小值。 解题思路:首先想到的的做法是首先任意选两个值作为最小值和最大值。然后剩下的n-2个值分别于这两个值进行比较即可。这样总共要 比较2*(n-2)次。有没有更好的做法呢,在算法导论第九章利就给出了这样一种思路:首先任意选两个值作为最小值和最大值。当然,奇数数组和偶数数组有点不同,奇数数组选第一个既是最大值,也是最小值。偶数数组先比较第一对数组,得出最大最小值。然后再将剩下的数分成两两一组,先两两比较,然后把较小的与最小值比较,较大的与最大值比较。剩下的(n-2)/2组中,每一组只需比较3次即可。也就是3*(n-2)/2。比前... 阅读全文
posted @ 2013-06-17 22:05 Jason Damon 阅读(807) 评论(0) 推荐(0) 编辑
摘要: 问题描述:给定线性序集中n个元素和一个整数k,1≤k≤n,要求找出这n个元素中第k大的元素,(这里给定的线性集是无序的)。 其实这个问题很简单,直接对线性序列集qsort,再找出第k个即可。但是这样的时间复杂度就是qsort的时间复杂度O(nlogn)。有没有更快的方法呢?看到网上有一种解法是采取了快排的思路,但是稍微坐了些改动,然后时间复杂度能够接近O(n)。因为最近刚刚写了快排的实现,所以在这我就再把这个实现一次吧。 解题思路:与快排不同的是,这里只对划分出来的其中一组进行递归处理。任意选定一个pivotIndex,pivotValue = arr[pivotIndex]。经过一次... 阅读全文
posted @ 2013-06-17 19:55 Jason Damon 阅读(15801) 评论(0) 推荐(0) 编辑
摘要: 最近看到了伯乐在线编程挑战赛,觉得题目还比较适中,而且出发点非常好,至少对我这种菜鸟来说。首先,他不排名,其次还公布大家提交的源码,如果不会的话,可以参考别人的代码。并且可以学习高手们的思路和编码风格,对自己有非常大的帮助。以后我会一直坚持跟进他的题目。 今天把第0期的呼叫转移系统的题目看了下,第一次自己写的时候,没把情况考虑全。后来参考了别人的思路,最终把它给弄出来了。 要解决的就两个问题: 1)当天设置了多少个呼叫转移 2)最长的呼叫转移是多长次 ( A君转到B君,B君再转到C君。这个是2次呼叫转移) 第一个问题很好解决,只需判断要求的那天是否在某个人的假期里,在的话,总数++... 阅读全文
posted @ 2013-06-16 16:03 Jason Damon 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。(出自维基百科)快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。在这里我采用的是递归调用分区算法把序列划分成两个子序列的方法来实现快排。具体的图例在维基百科里写得非常清楚,一看就明白了。分区算法: 首先寻找任意一个pivo 阅读全文
posted @ 2013-06-15 22:41 Jason Damon 阅读(1029) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 26 下一页