• Java实现 蓝桥杯VIP 算法提高 超级玛丽


    算法提高 超级玛丽
    时间限制:1.0s 内存限制:256.0MB
    问题描述
      大家都知道"超级玛丽"是一个很善于跳跃的探险家,他的拿手好戏是跳跃,但它一次只能向前跳一步或两步。有一次,他要经过一条长为n的羊肠小道,小道中有m个陷阱,这些陷阱都位于整数位置,分别是a1,a2,…am,陷入其中则必死无疑。显然,如果有两个挨着的陷阱,则玛丽是无论如何也跳过不去的。
      现在给出小道的长度n,陷阱的个数及位置。求出玛丽从位置1开始,有多少种跳跃方法能到达胜利的彼岸(到达位置n)。
    输入格式
      第一行为两个整数n,m
      第二行为m个整数,表示陷阱的位置
    输出格式
      一个整数。表示玛丽跳到n的方案数
    样例输入
    4 1
    2
    样例输出
    1
    数据规模和约定
      40>=n>=3,m>=1
      n>m;
      陷阱不会位于1及n上

    import java.util.Scanner;
    
    
    public class 超级玛丽 {
    	static int n;
    	static int num=0;
    	static void recurse(int cur,int a[]){
    		if(cur==n){
    			num++;
    			return;
    		}
    		if(cur+1<=n&&a[cur+1]==0)
    			recurse(cur+1,a);
    		if(cur+2<=n&&a[cur+2]==0)
    			recurse(cur+2,a);
    	}
    	public static void main(String[] args) {
    		Scanner in=new Scanner(System.in);
    		n=in.nextInt();
    		int m=in.nextInt();
    		int a[]=new int[n+1];
    		for(int i=0;i<m;i++){
    			int t=in.nextInt();
    			if(t<n)
    				a[t]=1;
    		}
    		recurse(1,a);
    		System.out.println(num);
    
    	}
    
    
    }
    
    
  • 相关阅读:
    ASP.NET AJAX__序言
    LINQ to SQL(4):OR设计器
    ASP.NET AJAX(11)__ScriptManager
    ASP.NET AJAX(15)__构建高性能ASP.NET AJAX应用
    LINQ to SQL(2):生成对象模型
    LINQ to SQL(3):增删改查
    ASP.NET AJAX(14)__UpdatePanel与服务器端脚本控件
    ASP.NET AJAX(13)__利用Microsoft AJAX Library开发客户端组件
    LINQ to SQL(1):基础入门
    ASP.NET AJAX(12)__浏览器兼容功能
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13078375.html
Copyright © 2020-2023  润新知