码迷,mamicode.com
首页 >  
搜索关键字:广义表 递归    ( 18981个结果
HDU 4280 Island Transport 网络流裸题
非递归版好像被卡掉了,其他2个板子都能过。 #include #include #include #include #include using namespace std; #define ll int const int MAXN = 100100;//点数的最大值 const int MAXM = 400010;//边数的最大值 const int INF = 0x3f3f3f3f; st...
分类:其他好文   时间:2014-05-09 22:55:23    阅读次数:476
24点游戏
24点游戏 题目描述 给出4个正整数操作数,你的任务是使用运算符(+,-,*,/)和括号对操作数进行计算,分析是否能得到24,每个操作数只能使用1次,运算符和括号可以多次使用,注意所有的中间结果都是整数。 输入 输入包括多行,每行4个正整数,范围是[1,13],输入以0 0 0 0标记结束 输出 若输入的4个操作数能计算出24,输出Yes,否则输出No 样例输...
分类:其他好文   时间:2014-05-09 22:20:17    阅读次数:310
回溯法-01背包问题之二:顺序执行模式
上文已讲述了回溯法以及01背包问题的原理,本文讲述如何顺序执行解决01背包问题以及通过模板模式重构软件。 一、顺序执行流程图 图1无剪枝函数的01背包问题顺序执行算法流程图 图2 有剪枝函数的01背包问题顺序执行算法流程图 无剪枝函数是通用的深度遍历算法,为了减少搜索深度可通过剪枝函数处理完全不可能的分枝。与递归方案的区别主要表现在i>=n后需要“回溯”,即用后进先出的方式将物...
分类:其他好文   时间:2014-05-09 22:15:22    阅读次数:675
回溯法-01背包问题之一:递归模式
一、回溯法 回溯法是一个既带有系统性又带有跳跃性的搜索算法。它在包含问题的所有解的解空间树中按照深度优先的策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一节点时,总是先判断该节点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该节点为根的子树的系统搜索,逐层向其原先节点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。 运用回溯法解题通常包含以下三个步骤: · 针对所给问题...
分类:其他好文   时间:2014-05-09 22:06:39    阅读次数:409
leetcode第一刷_Decode Ways
这道题还挺难的。递归的思路是好想,不过不出意料的超时了。 dp嘛。想一下i-1的编码加上第i个编码会怎样,如果加上的这个编码不是0,那么这一位可以独立解码,那长为i的解码个数至少是长为i-1的解码个数。还有呢?如果i-1位是1,可以把i-1位和i位同时解码出来,还有呢?如果i-1位是2而i位是0-6中的数字,也可以同时解码这两位编码。满足这个条件的时候,当前长度的解码个数还要加上i-2时的解码个...
分类:其他好文   时间:2014-05-09 21:53:04    阅读次数:226
leetcode第一刷_Binary Tree Inorder Traversal
递归实现当然太简单,也用不着为了ac走这种捷径吧。。非递归实现还挺有意思的。 树的非递归遍历一定要借助栈,相当于把原来编译器做的事情显式的写出来。对于中序遍历,先要访问最左下的节点,一定是进入循环后,不断的往左下走,走到不能走为止,这时候,可以从栈中弹出访问的节点,相当于“左根右”过程的“根”,然后应该怎么做呢?想一下中序遍历完根节点之后应该干嘛,对,是走到右子树中继续重复这个过程,但是有一点,...
分类:其他好文   时间:2014-05-09 14:57:08    阅读次数:211
leetcode第一刷_Restore IP Addresses
字符串的问题真是难,一般递归比较好写代码,一般地归还会超时,而且测试用例特别多。。 这道题刚拿到手时直接慌了,这情况也太多了,后来冷静下来想想,其实还是比较单纯的。一个ip地址,肯定是四个整数加三个点构成,四个整数要满足什么呢,0~255嘛,还有呢,就是这四个整数必须正好把原来的字符串给用完。一开始忽略掉的一类测试用类是前面有0但实际这个数不是零的情况。 用什么来穷举呢,或者说穷举的对象是什么...
分类:其他好文   时间:2014-05-09 14:54:11    阅读次数:210
leetcode第一刷_Unique Binary Search Trees
这道题其实跟二叉搜索树没有什么关系,给定n个节点,让你求有多少棵二叉树也是完全一样的做法。思想是什么呢,给定一个节点数x,求f(x),f(x)跟什么有关系呢,当然是跟他的左右子树都有关系,所以可以利用其左右子树的结论,大问题被成功转化成了小问题。最熟悉的方法是递归和dp,这里显然有大量的重复计算,用dp打表好一些。 后来实验的同学说,这其实是一个Catalan数,上网查了一下,果然啊。Catal...
分类:其他好文   时间:2014-05-09 14:47:53    阅读次数:229
leetcode第一刷_Unique Binary Search Trees II
可能没想到简单方法的人,在上一题中就把这一题给做了。怎样把所有的树都生成出来呢?方法肯定用的是递归,但是有个致命的问题,如果做好了根节点再递归,那么出来的很多树都公用一个根节点,结果肯定是乱七八糟的。 怎么做?其实做法跟之前求个数在思想上是高度统一的,先把所有的左右子树都求出来,然后把它们之间的所有组合都连接到一个新建立出来的根节点,既然是分开左右子树,很容易想到类似二分的思想,每次指定的不是一...
分类:其他好文   时间:2014-05-09 14:13:55    阅读次数:376
斐波那契序列与跳台阶
剑指offer上的第就题,简单题,在九度OJ上测试通过。 主要注意以下几点: 1、用非递归实现,递归会超时 2、结果要用long long保存,不然会发生结果的溢出,从而得到负值 3、如果是在VC++6.0下编译的,long long是illegal的,要用_int64代替,同时输出的转化以字符也要用%l64d代替%lld...
分类:其他好文   时间:2014-05-09 13:55:58    阅读次数:436
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!