2011年3月26日
摘要: ——problem:求只含有因子2,3,5的第K大的数——solution:标记三个下标P2,P3,P4表示2,3,5分别乘到第几个数了。每次在2*(P2+1),3*(P3+1),5*(P5+1)里取最小的一个数放到数组了,然后那个下标+1. 阅读全文
posted @ 2011-03-26 22:00 风也轻云也淡 阅读(72) 评论(0) 推荐(0) 编辑
摘要: ——problem:度限制生成树——solution:Kruskal算法框架:1.先求出最小m度限制生成树;2.由最小m度限制生成树得到最小m+1度限制生成树;3.当dT(v0)=k时停止(即当V0的度为k的时候停止);第一步:求解最小m度限制生成树:原图中去掉和V0相连的所有边,得到m个连通分量,而这m个连通分量必须通过v0来连接,所以,在图G的所有生成树中dT(v0)≥m。也就是说,当k<m时,问题无解。对每个连通分量求一次最小生成树,对于每个连通分量V’,求一点v1,v1∈V',且ω(v0,v1)=min{ω(v0,v')|v'∈V'},则该连通分量 阅读全文
posted @ 2011-03-26 21:43 风也轻云也淡 阅读(268) 评论(0) 推荐(0) 编辑
摘要: ——problem:有度限制的生成树个数——solution:Cayley公式,Prüfer编码,递推Cayley公式是:一个完全图K_n有n^(n-2)棵生成树,换句话说n个节点的带标号的无根树有n^(n-2)个。Cayley公式的一个非常简单的证明,证明依赖于Prüfer编码,它是对带标号无根树的一种编码方式:给定一棵带标号的无根树,找出编号最小的叶子节点,写下与它相邻的节点的编号,然后删掉这个叶子节点。反复执行这个操作直到只剩两个节点为止。由于节点数n>2的树总存在叶子节点,因此一棵n个节点的无根树唯一地对应了一个长度为n-2的数列,数列中的每个数都在1到n的范 阅读全文
posted @ 2011-03-26 21:40 风也轻云也淡 阅读(451) 评论(0) 推荐(0) 编辑
摘要: ——problem:求起点到终点的非严格最短路——solution:dijkstra+A*以下转载自:http://www.cppblog.com/linyangfei/archive/2008/07/26/47662.html【 先说说启发式搜索吧。通常在解决问题的时候,我们需要用到搜索算法,由已知状态推出新的状态,然后检验新的状态是不是就是我们要求的最优解。检验完所有的状态实际上就相当于遍历了一张隐式图。遗憾的是,所有的状态组成的状态空间往往是成指数级别增长的,也就造成了遍历需要用到指数级别的时间,因此,纯粹的暴力搜索,时空效率都比较低。当然,我们在生活中遇到了类似于搜索的问题,我们并不会 阅读全文
posted @ 2011-03-26 21:23 风也轻云也淡 阅读(349) 评论(0) 推荐(0) 编辑