02 2017 档案
摘要:一.定义: 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 二.用法: 例如: int & a = b; 先看一个例子: 程序输出结果为: 0x602194 0x6021940x7fffe0565418 0x6021940x602194 0x6021940x7fffe05
阅读全文
摘要:这道题运用的知识点是求最短路的算法。一种方法是利用BFS来求最短路。 需要注意的是,我们要用一个三维数组来表示此状态是否访问过,而不是三维数组。因为相同的坐标可以通过不同的穿墙方式到达。 再一个方法可以用DFS求解。普通的DFS一定会超时。 我们把原来的DFS进行一些修改:只有当前节点没有访问或者需
阅读全文
摘要:关于最长公共子序列(LCS)的相关知识,http://blog.csdn.net/liufeng_king/article/details/8500084 这篇文章讲的比较好,在此暂时不再详说。 以下是我代码实现两种方式:递归+递推:
阅读全文
摘要:转载自 http://blog.csdn.net/synapse7/article/details/12873437 这道题我自己做的时候没有想到好的优化方法,提交的时候借鉴这篇文章的内容,转载如下: 11526 - H(n) Time limit: 5.000 seconds http://uva
阅读全文
摘要:题意:寻找特定区间内满足本身不是素数,但只有一个素因子的数。 这道题我一开始做了个超时(交的时候又忘记了测试大数。。。)。我原先是打算正向计算,对于每一个数判断他是否是素数,是否是只有一个素因子。这种思路能做,只是算法时间复杂度不符合题目要求。原题数组组数有几百,最大的数有10^12... 通过这个
阅读全文
摘要:题意:求区间内正约数最大的数。 原理:唯一分解定义(又称算术基本定理),定义如下: 任何一个大于1的自然数 ,都可以唯一分解成有限个质数的乘积 ,这里 均为质数,其诸指数 是正整数。这样的分解称为 的标准分解式。(取自百度百科) 根据原理,正约数数量 = (1+a1)(1+a2)..(1+an) 因
阅读全文
摘要:这道题大体意思是利用一种递归规则生成不同的气球,问在某两行之间有多少个红气球。 我拿到这个题,一开始想的是递归求解,但在如何递归求解的思路上我的方法是错误的。在研读了例题上给出的提示后豁然开朗(顺便吐槽一下算法竞赛第二版在这这道题目上(P246)提示写的有问题,g(k,i)=2g(k-1,i-2^(
阅读全文
摘要:这道题目并不是很难理解,题目大意就是求从第一列到最后一列的一个字典序最小的最短路,要求不仅输出最短路长度,还要输出字典序最小的路径。 这道题可以利用动态规划求解。状态定义为: cost[i][j] = max{cost[i+1][j+k]+c[i][j]}(k=-1,0,1) 关于最短路长度的求法,
阅读全文
摘要:题目大意是根据所给的有无限多个的n种立方体,求其所堆砌成的塔最大高度。 方法1,建图求解,可以把问题转化成求DAG上的最长路问题 方法2,转化成最长递增子序列问题求解 方法二要注意一点,我sort序列的时候用了一个cmp函数,他是根据立方体的底面积对立方体进行排序的。为什么不采用和方法一一样的排序方
阅读全文
摘要:在C++中,对结构体的排序方式比C语言丰富的多。在C语言中,我们主要是通过qsort进行排序操作(抛开手写排序算法不说)。 在C++<algorithm>中,有一个十分强大的排序函数sort,他的内部综合了许多种排序算法,因此非常高效。并且,用它来对结构体排序也十分方便。 先贴一段示例代码: 代码中
阅读全文
摘要:今天在做题的时候,偶然发现了一种神奇头文件。他的使用方法以及内容如下: 可以看到这个头文件几乎包括了所有的常用头文件,因此比较方便。 但并不是所有OJ都支持这个头文件。目前据我亲测,UVA,HDU(g++)是支持这个头文件的,其他OJ我没有尝试,希望使用这个头文件的可以自行尝试一下。
阅读全文
摘要:这道题题目大意就是计算带有单元格引用的各单元格的值。 这道题本身不难,有以下几个关键点: 1.如何判断一个单元格循环引用 2.注意对字符串的细致处理 我出现的错误出现在以上两个方面,思路本身是不难的。 第一条,我的错误在于第66行起初并没有加上。如果不加那一行,就代表了你同层之间不能是相同的单元格,
阅读全文