题意异常的简单。就是给定一个邻接矩阵,让你判定是否为树。算法1:O(n^3)。思路就是找到树边,原理是LCA。判断树边的数目是否为n-1。39-th个数据T了,自己测试2000跑到4s。算法2:O(n^2)。思考由图如何得到树,显然MST是可行的。因此,题目变为直接找到MST。然后通过树边构建目标矩...
分类:
其他好文 时间:
2015-06-24 00:38:21
阅读次数:
150
一)声明 新手上路。如果有不对的,不合理的地方,编码风格,算法思路有待改进的地方,还请各位大神多多指点。二)简介 本文中采用动态开辟内存的方法建立线性表,实现顺序表的基本操作。 此代码思路比较简单,毕竟只是简单的原理,没有具体的应用,仅仅作为入门学习的积累。三)具体实现分析如下: 3.1)...
分类:
其他好文 时间:
2015-06-21 22:23:33
阅读次数:
166
垃圾收集算法思路:把对象按照寿命长短分组,分为年轻代和年老代,新创建对象被分在年轻代,如果对象经过几次回收后仍然存活,那么再把这个对象分到年老代。年老代的收集频度不像年轻代的频繁,这样就减少了每次垃圾收集时所扫描的对象数量,从而提高垃圾回收效率Young : 分为eden区和两个Survivor区,...
分类:
编程语言 时间:
2015-06-10 19:05:46
阅读次数:
150
题目意思:给定一个NxN的数字矩阵,每一行从左到右增加,每一列从上到下增加。查找其中是否存在一个数key。算法思路:
起始从右上角开始查找,a[i][j]初试值为a[0][n-1],循环下列
while( i = 0)
如果key a[i][j],则往下走,执行i++
如果key == a[i][j],表示找到了
代码:boo...
分类:
其他好文 时间:
2015-06-08 17:27:10
阅读次数:
123
学了一发LCA的倍增算法+跳表维护。先说说LCA倍增算法,思路是fa[i][j]求的是i结点的2^j倍的祖先,其中2^0就是父结点了。所以可以递推fa[i][j]=fa[fa[i][j-1]][j-1]。当求LCA时,设深度u>v,则先倍增把u提到v的同等深度,若u==v,lca就是u,否则,两点同...
代码项目完结后公布。。。。。。项目介绍:该项目,类似于Photoshop,CAD等专业制图软件(当然,功能没他们那么强大),该软件,主要是工业的图像处理。项目接近尾声了,主要关键算法、思路如下:1.鼠标点到最近图的距离——判断选中线段2.鼠标点是否在多边形凸形图的内——判断选中多边形3.计算机中,角...
分类:
其他好文 时间:
2015-06-05 12:13:54
阅读次数:
148
算法思路: 采用遍历的算法,从1到M,一个一个计算1的个数。统计出来。代码:#include using namespace std;int f(int m){ int n = 0; for (int b = 1;b 0) { if (i%10 =...
分类:
其他好文 时间:
2015-06-04 20:55:26
阅读次数:
109
典型的博弈论,算法思路为在初始化的过程中便获得2001.11.4到1990.1.1期间所有日期的胜败情况。对于y-m-d日期,若其下一天和下一月中有一个为必败情况,则今天为必胜。若两者均为必胜,则今天为必败。主要难度在于前一日(getDayBefore)和后一月(isValidNextMonth)日期的判定,要注意闰年情况的特殊性。
虽然说这样可行。但是,网上给出了另外一种巧解,如下。从后往前...
分类:
其他好文 时间:
2015-06-03 13:39:25
阅读次数:
104
一.前言一致性哈希(Consistent Hashing),最早由MIT的Karger于1997年提出,主要用于解决易变的分布式Web系统中,由于宕机和扩容导致的服务震荡。现在这个算法思路被大量应用,并且在实践中得到了很大的发展。二.算法设计1.问题来源一个由6台服务器组成的服务,每台Server负...
分类:
编程语言 时间:
2015-06-02 17:28:51
阅读次数:
140
冒泡算法,顾名思义,就是按一定的顺序排列的数据。算法思路: 假设有一个这样的数组int[] arr = {5, 9, 3, 1, 2, 6, 7, 4, 8}; 根据算法定义,我们需要的输出为int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9}; 首先,拿到我们原...
分类:
编程语言 时间:
2015-06-02 11:02:32
阅读次数:
143