/*
ID:kevin_s1
PROG:numtri
LANG:C++
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define MAXN 1001
//gobal v...
分类:
其他好文 时间:
2014-06-20 12:02:24
阅读次数:
192
递归的正式定义:
在数学和计算机科学中,递归指由一种(或多种)简单的基本情况定义的一类对象或方法,并规定其他所有情况都能被还原为其基本情况。
例如,下列为某人祖先的递归定义:
某人的双亲是他的祖先(基本情况)。
某人祖先的双亲同样是某人的祖先(递归步骤)...
分类:
其他好文 时间:
2014-06-14 10:22:52
阅读次数:
162
#includevoid move(int n,char a,char b,char c){
if(n==1) printf("\t%c->%c\n",a,c); //当n只有1个的时候直接从a移动到c else {
move(n-1,a,c,b)...
分类:
其他好文 时间:
2014-06-13 17:59:50
阅读次数:
171
在通过汉诺塔问题理解递归的精髓中我讲解了怎么把一个复杂的问题一步步recursively划分了成简单显而易见的小问题。其实这个解决问题的思路就是算法中常用的divide
and conquer, 这篇日志通过解决矩阵的乘法,来了解另外一个基本divide and conque思想的strassen算...
分类:
其他好文 时间:
2014-05-26 11:53:42
阅读次数:
365
要将n个盘子从a 通过b 移动到c那么 就要先将 n-1个盘子从a通过c
移动到b再将a最底下的盘子移动到 c之后再将 n-1个盘子从b通过a移动到c由此可得到 递归公式hanoi(int n,char from,char
denpend_on,char to):{ //n:盘子数from:a,d....
分类:
其他好文 时间:
2014-05-24 03:00:06
阅读次数:
159
数塔
Problem Description
在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:
有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?
已经告诉你了,这是个DP的题目,你能AC吗?
Input
输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整...
分类:
其他好文 时间:
2014-05-22 06:32:17
阅读次数:
198
一 基本概念
分治法,顾名思义分而治之的意思,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
二基本思想及策略
分治法的设计思想是:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
分治策略是:对于一个规模为n的问题,若该问题可以容易地解...
分类:
其他好文 时间:
2014-05-18 14:31:14
阅读次数:
331
之前遇见这个问题,非常费劲地理解了,并写出代码,然后过段时间,再遇见这个问题,又卡住了,如此反反复复两三次,才发现自己对递归的理解依然很肤浅。今天无聊,重温《算法:c语言实现》一书,又遇见了这个问题,心头一紧,担心要费些时间才能写出代码,没想到的是,再理解了书中对递归的定义,蒙住源代码动手写,发现很...
分类:
编程语言 时间:
2014-05-15 16:06:56
阅读次数:
304
《具体数学》通过三个例子来讲递归,分别是:HanoiTower(汉诺塔)、LinesinthePlane(平行中的直线)、JosephusCircle(约瑟夫环问题)这三个例子一直被数学家们反复研究;已知解法都使用递归,大问题化为小问题;都可以用计算机程序来求解;我最近因为考试忙的其实也没看几页,就先把..
分类:
其他好文 时间:
2014-05-09 06:56:00
阅读次数:
270