1 //Accepted 208 KB 0 ms 2 //最长公共上升子序列+输出 3 //dp 4 //输出时用的递归输出,注意条件判断 5 #include 6 #include 7 #include 8 using namespace std; 9 const int im...
分类:
其他好文 时间:
2014-08-12 13:16:04
阅读次数:
201
典型的记忆化递归问题。
这类问题的记忆主要是利用数组记忆,那么已经计算过的值就可以直接返回,不需要进一步递归了。
注意:下标越界,递归顺序不能错,及时判断是否已经计算过值了,不要多递归。
或者直接使用动态规划法填好表也是可以的。
#include
#include
const int MAX_N = 21;
int W[MAX_N][MAX_N][MAX_N];
int g...
分类:
其他好文 时间:
2014-08-12 10:26:23
阅读次数:
232
最大联通环 POJ 3895 Cycles of Lanes (dfs)...
分类:
其他好文 时间:
2014-08-12 10:26:14
阅读次数:
235
快速排序的原理:首先找一个标兵值,等于某一个元素值;遍历数组,将数组分为小于标兵值和大于标兵值的两部分;然后分别对两个部分采用快速排序,递归。分开数组时,维持一个指针,指向已找到小部分的最后一个元素;一个指针用于遍历。不稳定排序算法。当数组已经有序时,时间复杂度最差,为O(N2),平均、最优情况下都...
分类:
其他好文 时间:
2014-08-12 00:36:13
阅读次数:
146
归并排序的原理:如果数组的元素个数大于1,则: 将数组平均分为两部分; 左边的数组归并排序;递归 右边的数组归并排序;递归 将两个各自有序的数组合并,需要一个额外的辅助数组,暂时保存合并结果;返回否则,数组元素个数为1时,已经有序;直接返回。稳定排序。时间复杂度在最坏、最好、平均情况下都为O...
分类:
其他好文 时间:
2014-08-12 00:27:53
阅读次数:
223
首先来看DNS中常用的2种查询模式 1.递归查询:? 一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机; 2....
分类:
其他好文 时间:
2014-08-11 21:41:43
阅读次数:
325
为了完成一个简单的注册表删除程序,由于我本身是win7 64位的OS,写了以下代码来递归删除注册表键值,程序代码如下:
#include
#include
#define KEY_WOW64_64KEY 256
long DeleteSubKeyTree(HKEY hKey, LPCTSTR lpSubKey)
{
LONG lResult;
HKEY hSubKey;
DWO...
思路:先序的第一个元素和后序的最后一个元素是当前子树的根,然后遍历中序序列,找到左右子树的分界线,递归建左子树和右子树。
class Solution {
public:
/*由于是oj,这里假设给的序列是合法的,正常情况是需要判断不合法情况的 */
TreeNode *buildTree(vector &inorder, vector &postorder,int instar...
分类:
其他好文 时间:
2014-08-11 21:37:42
阅读次数:
504
快速排序递归实现,队列实现,栈实现,partition实现...
分类:
其他好文 时间:
2014-08-11 21:35:52
阅读次数:
275
擅长排列的小明
时间限制:1000 ms | 内存限制:65535 KB
难度:4
描述
小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。现在需要你写一个程序来验证擅长排列的小明到底对不对。
输入
第一行输入整数N(1
...
分类:
其他好文 时间:
2014-08-11 21:19:52
阅读次数:
273