zoukankan      html  css  js  c++  java
  • 摆动序列

    蓝桥杯 摆动序列
    问题描述
      如果一个序列满足下面的性质,我们就将它称为摆动序列:
      1. 序列中的所有数都是不大于k的正整数;
      2. 序列中至少有两个数。
      3. 序列中的数两两不相等;
      4. 如果第i – 1个数比第i – 2个数大,则第i个数比第i – 2个数小;如果第i – 1个数比第i – 2个数小,则第i个数比第i – 2个数大。
      比如,当k = 3时,有下面几个这样的序列:
      1 2
      1 3
      2 1
      2 1 3
      2 3
      2 3 1
      3 1
      3 2
      一共有8种,给定k,请求出满足上面要求的序列的个数。
    输入格式
      输入包含了一个整数k。(k<=20)
    输出格式
      输出一个整数,表示满足要求的序列个数。
    样例输入
    3
    样例输出
    8

    import java.util.Scanner;
    
    public class Main {
    	static int[] value = new int[22];
    	static int[] vis = new int[22];
    	static int k = 0;
    	static int ans = 0;//统计结果
    	public static void main(String args[]){
    		Scanner sc = new Scanner(System.in);
    		k = sc.nextInt();
    		sc.close();
    		dfs(1);
    		System.out.println(ans - k);
    	}
    	
    	private static void dfs(int step){
    		if(step > k)
    			return;
    		if(step==1 || step==2){		//初始化得把1考虑进去,输出结果的时候减掉n就行
    			for(int i=1;i<=k;i++){
    				if(vis[i] == 0){
    					value[step] = i;
    					vis[i] = 1;
    					ans++;
    					dfs(step+1);
    					value[step] = 0;	//这个下次还得用,需要还原最初的情况
    					vis[i] = 0;
    				}
    			}
    		}else{
    			if(value[step-1] > value[step-2]){
    				for(int i=1;i<value[step-2];i++){
    					ans++;
    					value[step] = i;
    					vis[i] = 1;
    					dfs(step+1);
    					value[step] = 0;
    					vis[i] = 0;
    				}
    			}else if(value[step-1] < value[step-2]){
    				for(int i=value[step-2]+1;i<=k;i++){
    					ans++;
    					value[step] = i;
    					vis[i] = 1;
    					dfs(step+1);
    					value[step] = 0;
    					vis[i] = 0;
    				}
    			}
    		}
    	}
    
    }
  • 相关阅读:
    (05)ElasticSearch 倒排索引
    (04)ElasticSearch 安装Kibana
    (03)ElasticSearch 安装ElasticSearch-Head插件
    (02)ElasticSearch 安装
    (004)Linux http命令curl访问url
    (01)ElasticSearch概述
    (16)mongodb mapReduce分布式统计示例遇到的一个未解问题,求平均值不对,希望哪位大神给指点一下
    (15)mongodb mapReduce的概念及用法
    (14)mongodb aggregate聚集框架
    CodeForces
  • 原文地址:https://www.cnblogs.com/techgy/p/12771760.html
Copyright © 2011-2022 走看看