2013年6月9日
摘要: there are many examples aboutReadDirectoyChangesW on Web, but they all have a small bug:bytesReturned may be zero when ReadDirectoyChangesW()/GetOverlappedResult() return TRUE, in this case,you will encounter an access violation if read buffer without checkingbytesReturneda simple way to reproduce t 阅读全文
posted @ 2013-06-09 17:14 ellusak 阅读(133) 评论(0) 推荐(0) 编辑
  2013年6月8日
摘要: when run svnindex.cmd, it always tell you "zero source files found"after a painful diggin into svn.pm (the perl module to deal with svn), i found that:1. first, svn.pm invokes "svn info -R$SourceRoot" to get all version info of files in $SourceRoot (passed by /source option),2. t 阅读全文
posted @ 2013-06-08 21:37 ellusak 阅读(314) 评论(0) 推荐(0) 编辑
  2012年8月13日
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2012-08-13 13:39 ellusak 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 如何判断线段[(x1, y1) , (x2,y2)] 和线段 [(x1', y1'), (x2', y2')] 在扫描线x处的顺序线段和扫描线x处的交点为(x, y),和(x, y')y = x1 + (x-x1)/(x2-x1) * (y2-y1)y' = x1' + (x-x1')/(x2'-x1') * (y2'-y1')将y和y'同时乘以 (x2-x1)(x2'-x1')再比较这样就消除了除法运算 阅读全文
posted @ 2012-08-13 13:26 ellusak 阅读(359) 评论(0) 推荐(0) 编辑
  2012年8月1日
摘要: 假设i, i+1这两条线没有比较器,考虑如下0,1序列... 0, 0,0, 1, 0, 1, 1, ...ai = 1, ai+1=0所有比较器Cx,y只有三种情况:1. x<i, y<=i,2. x<=i, y>=i+1 且不是x=i, y=i+13. x >=i+1, y>i+1,以上三种情况都不会改变ai和ai+1的值,因此最后的输出不是有序的 阅读全文
posted @ 2012-08-01 16:52 ellusak 阅读(196) 评论(0) 推荐(0) 编辑
  2012年7月31日
摘要: 算法如下: 从G中任取一点s,然后依次计算s到其他V-1个点的最大流,这V-1个最大流中的最小的那个流值|f|min就是要求的边连通度k证明: (1) 假设以t为汇点,最小割割(S,T), 容量为c(S,T)=|f|, 由于每条边的容留都是1,因此割(S,T)之间有c(S,T)条边相连,删除这c(S,T)条边,G一定会 变成非连通,因此k<=c(S,T)=|f|。 该不等式对任意一点为汇点都成立,因此k<=|f|min (2) 假设以t为汇点,最大流值为|f|, 我们要证明至少要删除|f|条边才会导致G中没有s-->t的路径: 由于最小割c(S,T)=|f|, 只... 阅读全文
posted @ 2012-07-31 10:33 ellusak 阅读(634) 评论(0) 推荐(0) 编辑
  2012年7月30日
摘要: 证明前驱子图Gπ,i是以i为根的一个最短路径树,需要依次证明如下性质:1. Gπ,i没有环路2.i到Gπ,i中任意顶点有且只有一条路径3. 证明该路径为最短路径性质1证明πi,j=k, 则di,j <= di,k + w(k,j), 假设存在环路c为(v0, v1, v2,...vk), vk=v0, 且是在更新vi的π值时第一次形成的环, π(vi)=vi-1,根据π的定义对于vi有di,vi < di,vi-1 + w(vi-1, vi)将k-1个不等式和上面的严格不等式相加得到 0 > w(v0, v1) + ... + v(vk, v0),和没有负权环路的前提矛盾性质 阅读全文
posted @ 2012-07-30 09:09 ellusak 阅读(772) 评论(0) 推荐(0) 编辑
  2012年7月29日
摘要: 先分析Dijkstra算法的本质要求:1. 有最优子结构2. 函数Len(s, v0, v1, ..., vk)定义了路径(s,v0, v1, ..., vk)的长度,要求任选一点vk+1属于V,则Len(s, v0, v1, ...,vk, vk+1) >=Len(s, v0, v1, ..., vk) 即以路径的角度来看Len是单调递增的;方法1:边的权重设置为w(u,v)=1/r[u,v], 求最短路径,路径长度的定义为Len(s, v0, ... ,vk) = w(s,v0)*w(v0,v1)*...*w(vk-1,vk), Len(s)=1; 松弛的时候使用乘法方法2:边的权重 阅读全文
posted @ 2012-07-29 10:49 ellusak 阅读(1144) 评论(0) 推荐(0) 编辑
摘要: 将所有d[v]初始化为0, 然后对边(u,v)松弛的时候,d[v] = min{ d[v], d[u]+weight(u,v) }可以证明δ*[v]同样满足三角不等式、上界性质、收敛性质和路径松弛性质 阅读全文
posted @ 2012-07-29 10:26 ellusak 阅读(853) 评论(0) 推荐(0) 编辑
摘要: Bellman-Ford进行VE次松弛之后,该负权环中必然有一个点不满足三角不等式,而且π[v]也在该环路中注意:上面的算法要求是只有一个负权环路,多个的话可能计算出的环路数可能小于实际值 阅读全文
posted @ 2012-07-29 10:09 ellusak 阅读(972) 评论(0) 推荐(0) 编辑