随笔分类 - 递归与分治
松下问童子
摘要:遗忘 --- 真是一件迷人的事儿。 ---- 某无耻乐观的小逗比 /** * 题目: UVa 548 * 问题描述: 给定一个带权(权值各不不相同,且都是小于10000的正整数)的二叉树的中序和后序遍历, * 找一个叶子使得它到树根路径上的权值和最小, 如果有多解, 使该叶子结点本身的权值应尽量小。 * 输入: 第一行为中序遍历, 第二行为后续遍历 * 示例: * 输...
阅读全文
摘要:神奇而又巧妙地递归递归调用:定义: 函数本身调用自己本身。那么不是无限循环了吗? 当然不是! 因为一定得有一个递归链在变化, 并且一定会断。(不然就会陷入无限循...
阅读全文
摘要:题目链接:http://poj.org/problem?id=3104 DryingTime Limit: 2000MSMemory Limit: 65536KTotal Submissions: 11128Accepted: 2865DescriptionIt is very hard to wa...
阅读全文
摘要:最大子段和是一个十分经典的问题。 给定由n个整数(包含负整数)组成的序列a1,a2,...,an,求该序列子段和的最大值。 当所有整数均为负值时定义其最大子段和为0。 例如,当(a1,a2, ……a7,a8)=(1,-3, 7,8,-4,12, -10,6)时,最大子段和为:23 bj是1到j位置的
阅读全文
摘要:分治法。 无需赘述! 就是把规模较大的问题划分成易于解决的小问题, 这个思路和模块化编程思想较为相似!。 然后把小问题的解组合成所要的最终目的解。 在一般情况下, 分治法都和递归有一腿, 所以如果想用好分治, 请先了解一下递归(当然大神可以秒杀一切, 腾空跳读, 弱渣只有膜拜!)。分治法模式:div...
阅读全文
摘要:递归就是函数间接的调用自己, 它的实现基于函数参数传递的栈机制, 每次递归递归调用都会多一个栈帧——和简单的函数调用并没有什么不同 (都是使用了调用栈)。调用自己和调用其它函数并没有本质的区别, 都是建立新栈帧, 传递参数并修改当前代码行。在函数体执行完毕后删除栈帧, 处理返回值并修改当前代码行。
阅读全文