zstu 深入浅出学算法017——DFS——猴子爬山

Description

一个猴子在一座不超过30级的小山上爬山跳跃,猴子上山一步可跳1级或跳3级,试求上山有多少种不同的爬法

Input

多组测试数据,每组输入1个整数n,表示山的台阶数

Output

对于输入的整数n求出多少种爬法

Sample Input

30

Sample Output

58425

HINT

大意:经典DFS

#include<cstdio>
int n, tot;
void  dfs(int sum){
     if(sum ==  n){
         tot ++;
         return;
     }
     if(sum > n )
         return ;
     dfs(sum + 1);
     dfs(sum + 3);
}

int main()
{
    while(~scanf("%d",&n)){
         tot  = 0;
        dfs(0);
        printf("%d\n",tot);
    }
    return 0;
}

时间: 04-18

zstu 深入浅出学算法017——DFS——猴子爬山的相关文章

zs深入浅出学算法022——DFS———汉诺塔问题II

Description 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘. Input 输入圆盘数n( 1 <= n <= 10) Output 按照示例输出搬盘子的过程,每次搬动输出一行 Sample Input 2 Sample Output a->b

zstu深入浅出学算法020——DP——排队购票

Description 一常球赛开始前,售票工作正在进行中.每张球票为50元,现有k(1 <= k <= 30)人排队购票,其中n人手持50元的钱,剩余m人手持100元的钱,假设开始时售票处没有钱,求出售票处不出现找不开钱的不同排队种数(拿同样钞票面值的人换位置视为同一种排队) Input 多组测试数据,先输入整数T表示组数,然后每组输入2个整数n和m Output 对于每组测试数据输出1行,值为题目描述中的排队种数 Sample Input 2 1 2 1 1 Sample Output 0

Problem E: 深入浅出学算法019-求n的阶乘

Problem E: 深入浅出学算法019-求n的阶乘 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 5077  Solved: 3148 Description 求阶乘,采用递归的方法,你会写吗? Input 多组测试数据,首先输入整数T表示组数 然后每一组在一行输入一个整数n( 1 <= n <= 10) Output 对于每组数据输出一行,值为n的阶乘 Sample Input 1 2 Sample Output 2 HINT 使用递归函数求

Problem A: 深入浅出学算法002-n个1

Description 由n个1组成的整数能被K(K<10000)整除,n至少为多少? Input 多组测试数据,第一行输入整数T,表示组数 然后是T行,每行输入1个整数代表K Output 对于每组测试数据输出1行,值为n Sample Input 1 11 Sample Output 2 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int t; while(scanf(

Problem G: 深入浅出学算法008-求佩尔方程的解

Description 求关于x y的二次不定方程的解 x2-ny2=1 Input 多组输入数据,先输入组数T 然后输入正整数n(n<=100) Output 对于每组数据输出一行,求y<=10000的最小正整数解 ,输出y的值,如果在此范围内没有解则输出No Sample Input 1 73 Sample Output No #include <stdio.h> #include <math.h> int main() { int t,n; int i,j; in

(转)深入浅出K-Means算法

原文地址:http://www.csdn.net/article/2012-07-03/2807073-k-means 摘要:在数据挖掘中,K-Means算法是一种 cluster analysis 的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法. 在数据挖掘中,K-Means算法是一种cluster analysis的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法. 问题 K-Means算法主要解决的问题如下图所示.我们可以看到,在图的

1169: 零起点学算法76——绝对公正的裁判

1169: 零起点学算法76--绝对公正的裁判 Time Limit: 1 Sec  Memory Limit: 128 MB   64bit IO Format: %lldSubmitted: 510  Accepted: 336[Submit][Status][Web Board] Description 大家知道我们学校的OnlineJudge吗?,你知道他会告诉你什么呢? Compiling : 您提交的代码正在被编译.Running : 您的程序正在OJ上运行.Judging : OJ

1165: 零起点学算法72——首字母变大写

1165: 零起点学算法72--首字母变大写 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 705  Accepted: 439[Submit][Status][Web Board] Description 输入一个英文句子,将每个单词的第一个字母改成大写字母. Input 输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行. Output 请输出按照要求改写后的英文句

1127: 零起点学算法34——继续求多项式

1127: 零起点学算法34--继续求多项式 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 3481  Accepted: 1985[Submit][Status][Web Board] Description 输入1个正整数n, 计算1+(1+2)+(1+2+3)+...+(1+2+3+...+n) Input 输入正整数n(多组数据) Output 输出1+(1+2)+(1+2+3)+...+