算法设计 - 递归求解
文章平均质量分 78
i逆天耗子丶
这个作者很懒,什么都没留下…
展开
-
递归算法 未名湖边的烦恼 java
问题描述 每年冬天,北大未名湖上都是滑冰的好地方。北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式 两个整数,表示m和n输出格原创 2016-04-16 10:59:06 · 1160 阅读 · 0 评论 -
PAT - 甲级 - 1094. The Largest Generation (25)(树的遍历DFS)
A family hierarchy is usually presented by a pedigree tree where all the nodes on the same level belong to the same generation. Your task is to find the generation with the largest population.Inpu原创 2017-11-12 11:12:47 · 334 阅读 · 0 评论 -
PAT - 甲级 - 1090. Highest Price in Supply Chain (25)(树的遍历DFS)
A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone involved in moving a product from supplier to customer.Starting from one root supplier, everyone on原创 2017-11-12 10:49:12 · 260 阅读 · 0 评论 -
PAT - 甲级 - 1086. Tree Traversals Again (25)(已知中序+先序求后序)
An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the stac原创 2017-11-11 14:32:16 · 265 阅读 · 0 评论 -
PAT - 甲级 - 1079. Total Sales of Supply Chain (25)(DFS,遍历树)
A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone involved in moving a product from supplier to customer.Starting from one root supplier, everyone on原创 2017-11-10 12:00:30 · 270 阅读 · 0 评论 -
PAT - 甲级 - 1064. Complete Binary Search Tree (30)(完全二叉搜索树层次遍历)
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:The left subtree of a node contains only nodes with keys less than the node's key. The rig原创 2017-11-09 14:05:56 · 330 阅读 · 0 评论 -
PAT - 甲级 - 1043. Is It a Binary Search Tree (25)(递归建树,求后序,BST)
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:The left subtree of a node contains only nodes with keys less than the node's key. The rig原创 2017-11-07 10:28:00 · 257 阅读 · 0 评论 -
归并排序的实现及利用其求逆序对数
归并排序,顾名思义:递归+合并 合并:是将两个数列合并,如1 6 4 和 2 5 3合并,为了方便,我们将其命名为数列1和数列2 合并数列1和数列2, 从两者的最左边的位置开始比较, 1 6 > 2 ,将2放入数列3中备用, 数列2的指针后移。 6 > 5 ,将5放入数列3中备用,数列2的指针后移。 6 >3 ,将3放入数列3中备用,数列2的指针后移。原创 2017-04-27 09:28:30 · 561 阅读 · 0 评论 -
洛谷OJ - P1025 - 数的划分(递归取球问题)
题目描述将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5;1,5,1;5,1,1;问有多少种不同的分法。输入n,k (6输出一个整数,即不同的分法。样例输入7 3样例输出4题目说明四种分法为:1,1,5;原创 2017-05-24 09:24:38 · 1044 阅读 · 0 评论 -
PAT - 甲级 - 1130. Infix Expression (25) (中序遍历)
题目描述:Given a syntax tree (binary), you are supposed to output the corresponding infix expression, with parentheses reflecting the precedences of the operators.Input Specification: Each input原创 2017-03-19 13:13:21 · 1665 阅读 · 0 评论 -
PAT - 甲级 - 1127. ZigZagging on a Tree (30) ( 树的层次遍历变形 )
题目描述:Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can be determined by a given pair of postorder and inorder traversal sequences. And it is a sim原创 2017-03-23 15:37:54 · 728 阅读 · 0 评论 -
PAT - 甲级 - 1020. Tree Traversals (25)(层次遍历)
题目描述:Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to output the level order traversal sequence o原创 2017-03-30 09:59:10 · 724 阅读 · 0 评论 -
PAT - 甲级 - 1103. Integer Factorization (30)(dfs回溯+减枝)
题目描述:The K-P factorization of a positive integer N is to write N as the sum of the P-th power of K positive integers. You are supposed to write a program to find the K-P factorization of N for any原创 2017-03-30 22:01:06 · 558 阅读 · 0 评论 -
洛谷OJ - P1030 求先序排列(先序遍历)
题目大意:给出一个二叉树的中序遍历序列和后序遍历序列求先序遍历序列。输入样例:BADCBDCA输出样例:ABCD题目思路:后序遍历中最后一个字符是根节点,在中序遍历中找到该跟结点的位置,左边就是左子树的位置,右边就是右子树。如图所示,在右子树DC中,按照同样的方法进行操作,那么我们就可以通过递归得到整棵树。题目代码:#include#i原创 2017-03-18 22:11:48 · 796 阅读 · 0 评论 -
洛谷OJ - P1087 FBI树 ( 后序遍历 )
题目描述我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2^N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:1) T的根结点为R,其类型与串S的类型相同;2) 若串S的长度大于1,将串S从中间分开,分为等长的左原创 2017-03-18 16:23:49 · 1063 阅读 · 0 评论 -
【天梯赛】L2-006. 树的遍历(层次遍历)
题目描述:给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式: 输入第一行给出一个正整数N(输出格式: 在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 4 5 6 7输出样例:4 1 6 3 5 7 2题目思路原创 2017-03-18 21:21:07 · 2994 阅读 · 7 评论 -
【天梯赛】L2-011. 玩转二叉树 ( 层次遍历 )
题目描述:给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式: 输入第一行给出一个正整数N(输出格式: 在一行中输出该树反转后的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:71 2 3 4 5 6 74 1原创 2017-03-18 21:37:22 · 555 阅读 · 0 评论 -
UVa - 536 - Tree Recovery(给定中序和先序求后序,递归)
思路:由先序遍历可得到根节点。在中序遍历中找到根节点的位置,然后分别递归左子树和右子树,一般的思路到这里是递归建树,但是由于是要求后序遍历的序列。是左孩子+右孩子+根节点,而递归建树时是通过找到根节点,然后先递归左子树,然后递归右子树 ,所以直接输出的就是后序遍历的结果。#include#includeusing namespace std;char s1[30],s2[30]; //先原创 2016-10-08 16:59:23 · 458 阅读 · 0 评论 -
PAT - 甲级 - 1066. Root of AVL Tree (25)(AVL平衡二叉查找树)
An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more than one, rebalancing is原创 2017-11-13 15:46:24 · 317 阅读 · 0 评论