已知\(n\)个数的入栈序列,求一共有多少种出栈序列 这个经典问题有两种解法. 解法一: 设\(f(x)\)为\(x\)个数入栈后,再全部出栈的序列数量 假设我们有\(4\)个数\(a,b,c,d\), 我们来看\(a\)的出栈顺序. 假如\(a\)第一个出栈,那么后面还有\(3\)个数没有出栈,因此方法数是\(f(3)\). 假设\(a\)第二个出栈,那么\(a\)的前面有\(1\)个数已经出栈,后面还有\(2\)个数没有出栈,因此方法数为\(f(1) * f(2)\). 假设\(a\)第三个…
// n级台阶,求多少种跳法.cpp : Defines the entry point for the console application. // /* 思路: 如果只有一级台阶,n=1,很明显只有一种跳法 如果有两级台阶,n=2,则有两种跳法,一种是跳两下1级,一种是直接跳两级 那么我们来看看如果有n层台阶,可以怎么跳: n层台阶可以是这么够成的 1.第n层台阶是从第n-1层跳1级上来的 2.第n层台阶是从第n-2层直接跳2级上来的 所以可以得到n层的跳法总数是F(n)=F(n-1)+F…
不容易系列之(4)——考新郎 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 37629    Accepted Submission(s): 13786 Problem Description 国庆期间,省城HZ刚刚举行了一场盛大的集体婚礼,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目,叫做"考新郎",具体的操作…
问题描述: 给定m个A,n个B,一共有多少种排列 解题源代码: /** * 给定m个A,n个B,问一共有多少种排列 * @author Administrator * */ public class Demo06 { public static int f(int m,int n) { if(m==0||n==0)return 1; return f(m-1,n)+f(m,n-1); } public static void main(String[] args) { System.out.pr…
分析 第一个台阶  1第二个台阶  11 2    //走两次1步或者走1次两步第三个台阶  111 12 21 3 第四个台阶  1111 112 121 211 22 13 31 思想:4阶台阶,第一次可以迈1步(还剩3台阶也就是f(3)可能)或者2步(还剩2台阶也就是f(2)可能)或者3步(还剩1台阶也就是f(1)可能) f(n)=f(n-1)+f(n-2)+f(n-3)  第n个台阶的可能 = n-1台阶的可能+n-2台阶的可能+n-3台阶的可能 我这里采用了递归算法 //param x…
Android 动画 Android 动画在开发中是不可或缺的功能,或者说是界面灵动的添加剂.那你是否总结过 Android 中总共为开发者提供了多少种方式的动画呢?今天就为大家总结归纳一下.   报告老师,我知道 我话音未落,前排那位骚气不减当年.故事布满双眼的大胸弟就激动得高高举起了那只满是老茧的右手:“我知道,我知道!都有平移动画.缩放动画.旋转动画.渐变动画.还有......” 看着这位兄弟回答时专注又冥思苦想的表情,我真不忍心伤害他那颗纯真的幼小心灵.于是我决定说一个谎:“这位同学,你…
我们先把前四节种数算出来(自己想是哪几类,如果你不会算,那就放弃写代码吧,干一些在街上卖肉夹馍的小生意,也挣得不少) 标号 1    2    3     4 种类 1    2    4     7 假如你求第四台阶你可以把她视为  第三台阶到第四台阶  第三到第四有几种?显然就一种就是跨一步到第四台阶(就是4x1种) 同理 第二到第三台阶也是夸一步到第三个台阶(2x1) 第一到第二就一种那就是 1 第四种可以等于 4 +2+1=7(种) 只是一种思想 屌大的人也可以看出来 发现 第n项的值…
https://blog.csdn.net/tcpipstack/article/details/45173685 一个人爬楼梯,一步可以迈一级,二级,三级台阶,如果楼梯有N级,要求编写程序,求总共有多少种走法. N级楼梯问题可以划分为:N-1级楼梯,N-2级楼梯,N-3级楼梯的走法之和. 先计算下0,1,2,3及楼梯有多少种走法: 1 --> 1 2 --> 11 2 3 --> 111 12 21 3…
/** 题目:F - Goldbach`s Conjecture 链接:https://vjudge.net/contest/154246#problem/F 题意:对一个大于2的偶数n,找有多少种方法使两个素数的和为n:保证素数a<=b; a+b==n; a,b都为素数. 思路:直接暴力,为了避免内存超限,用bool类型判断素数. */ #include<bits/stdc++.h> using namespace std; typedef long long ll; ; bool f…
2021.07.09 K-D树 前置知识 1.二叉搜索树 2.总是很长的替罪羊树 K-D树 建树 K-D树具有二叉搜索树的形态,对于每一个分类标准,小于标准的节点在父节点左边,大于标准的节点在父节点右边. 例如:有三个坐标(2,2),(5,1),(6,4),x轴以5为标准,则(2,2)为(5,1)左儿子,(6,4)为(5,1)右儿子. 常见的建树方法有两个: 1.交替 从根节点出发,依次把k个维度作主要关键词. 例如:第一层以x轴坐标为关键词,第二层以y轴坐标为关键词,第三层还是以x轴坐标为关键…