zoukankan      html  css  js  c++  java
  • 7-5 跳一跳(30 分)

    有一条长度为n的赛道,其中有m个陷阱,这些陷阱都位于整数位置,分别是a1,a2,....am,陷入其中则必死无疑。

    开始时小人站在位置1,小人一次只能向前跳一步或两步。显然,如果有两个挨着的陷阱,小人是无论如何也跳不过去的。

    现在给出赛道的长度n,陷阱的个数m及位置。问有多少种跳跃方案可以让小人到达终点(位置n)。

    数据规模和约定:(  40>=n>=3, m>=1, n>m;  陷阱不会位于1及n上 )

    输入格式:

    第一行为两个整数n,m 第二行为m个整数,表示陷阱的位置

    输出格式:

    一个整数。表示小人跳到n的方案数

    输入样例:

    在这里给出一组输入。例如:

    8 2
    5 7
    

    输出样例:

    在这里给出相应的输出。例如:

    3
    网上搜了搜题解,发现都是用dp做的,然鹅我不会dp,就用深搜做了以下,感觉不难。
     1 #include <iostream>
     2 #include <string>
     3 #include <string.h>
     4 using namespace std;
     5 int n, m, counts;
     6 int a[41];
     7 void dfs(int x, int step) {
     8     if(x > n) {
     9         return;
    10     } 
    11     if(x == n) {
    12         counts++;
    13         return;
    14     }
    15     if(a[x+1] != 1) {
    16         dfs(x+1, step+1);
    17     } 
    18     if(a[x+2] != 1) {
    19         dfs(x+2, step+2);
    20     } 
    21 }
    22 int main() 
    23 {
    24     
    25     cin >> n >> m;
    26     //memset(a,1,sizeof(a));
    27     while(m--) {
    28         int x;
    29         cin >> x;
    30         a[x] = 1;
    31     }
    32     dfs(1, 0);
    33     cout << counts;
    34 }
    
    
    
     
  • 相关阅读:
    紫外传感器波长
    常见设备功耗
    点型感温火灾探测器研发思路
    C#使用Linq to XML进行XPath查询
    题解 最大获利
    题解 走迷宫
    2020-11-16 考试题解
    题解 最小生成树
    题解 「BZOJ4919 Lydsy1706月赛」大根堆
    题解 2020.10.24 考试 T4 模板
  • 原文地址:https://www.cnblogs.com/wzy-blogs/p/9161485.html
Copyright © 2011-2022 走看看