随笔分类 - 算法
摘要:http://blog.csdn.net/jemmy/article/details/481881 12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。 1,天平一边放四个,平则坏球在余下的四个里,好办。 不平,先将偏重的四个编号为:1、2、3、4。偏轻的编为A、B、C、D(因为不知道轻重)。 2。天平一边放三个,比如:左边放1、2、A。右边放3、4、B。 平则...
阅读全文
摘要:如何在事先不知道文本文件行数n的情况下读取该文件,从中随机选择并输出一行? (事先不知道n的大小,但是一次可以看到这n个对象) 即蓄水池抽样(Reservoir Sampling)问题 证明如下: 问题: 证明当前任意一行为取出行的概率为1/i,i为当前扫描到的行号,也即每一行取出的概率相等 我们用数学归纳法来证明, 当i=1时,当前只浏览了第一行,因...
阅读全文
摘要:1. 全排列的数目是n !,当 n=10 时, n ! =3628800 ,接近穷举极限。 2. N个元素的子集为 2^n ,非空子集为 2^n-1 ,非空真子集为 2^n-2 ,当 n=20 时, 2^n=1048576 接近穷举极限。 3. 研究若干可重复元素所组成的序列。假设有m 种元素,则有 m^n 个长度为 n 的序列(也就是每个位置上有 m 种取法,共 n 个位置),另外,长度为 ...
阅读全文
摘要:(木有想到解决办法) 背景知识: 最短路径算法 (1)Dijkstra算法——单源最短路径算法 (2)Floyd算法——每对顶点之间的最短距离 Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3)。 基本原理是;动态规划 http://www.cppblog.com/wing/archive/2011/03/10/141511.html (...
阅读全文
摘要:想到的dp但是思路不对没有想到利用乘法原理。设二叉树的高度为k,其中的节点个数为n则可能的二叉树个数f[k][n] = 2 * 求和(f[k - 1][r]*smaller[k - 1][n – 1 - r])+ 求和(f[k - 1][r]*f[k - 1][n – 1 - r])其中r的范围为从1到n第一项表示,左子树高度为k-1,右子树高度小于k-1,乘以2,表示左右子树对换的情况。第二项表示,左右子树的高度都是k-1这里需要注意的是smaller的计算,smaller[k][n]表示的是高度比k小,节点个数为n的子数可能种类。USACO的分析解答:This is a DP proble
阅读全文
摘要:y = f(t) 是一般常見的函数式,如果給定一個t值,f(t)函数式會赋一個值給y。 y = max f(t) 代表:y 是f(t)函式所有的值中最大的output。 y = arg max f(t) 代表:y 是f(t)函式中,會產生最大output的那個參數t。
阅读全文
摘要:http://www.csliving.cn/web/sudoku/skill.htm
阅读全文

浙公网安备 33010602011771号