zoukankan      html  css  js  c++  java
  • Java实现 蓝桥杯 算法训练 数字游戏

    试题 算法训练 数字游戏

    资源限制
    时间限制:1.0s 内存限制:256.0MB
    问题描述
      给定一个1~N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列都比上一次的序列长度少1,最终只剩一个数字。
      例如:
      3 1 2 4
      4 3 6
      7 9
      16
      现在如果知道N和最后得到的数字sum,请求出最初序列a[i],为1~N的一个排列。若有多种答案,则输出字典序最小的那一个。数据保证有解。
    输入格式
      第1行为两个正整数n,sum
    输出格式
      一个1~N的一个排列
    样例输入
    4 16
    样例输出
    3 1 2 4
    数据规模和约定
      0<n<=10

    package 第九次模拟;
    
    import java.util.Scanner;
    
    public class 数字游戏 {
    	static int sum;
    	static int N;
    	static int arr1[];
    	static boolean bool = true;
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner input = new Scanner(System.in);
    		N = input.nextInt();
    		sum = input.nextInt();
    		int array[] = new int[N];
    		int visit[] = new int[N + 1];
    
    		dfs(0, array, visit, bool);
    	}
    
    	public static void dfs(int step, int arr[], int vis[], Boolean b) {
    		if (step == N) {
    			int arr1[] = new int[N];
    			for (int i = 0; i < N; i++) {
    				arr1[i] = arr[i];
    			}
    			for (int i = 1; i < N; i++) {
    				for (int j = 0; j < N - i; j++) {
    					arr1[j] = arr1[j] + arr1[j + 1];
    				}
    			}
    			if (arr1[0] == sum) {
    				for (int x : arr) {
    					System.out.print(x + " ");
    				}
    				bool = false;
    				return;
    
    			} else
    				return;
    		}
    		if (bool == true) {
    			for (int i = 1; i <= N; i++) {
    				if (vis[i] == 0) {
    					arr[step] = i;
    					vis[i] = 1;
    					dfs(step + 1, arr, vis, bool);
    					vis[i] = 0;
    				}
    
    			}
    		}
    		return;
    	}
    }
    
    
  • 相关阅读:
    selenium python 启动Chrome
    安装selenium python
    网络编程32
    动态生成验证码———MVC版
    C#之发送邮件【模板】+【封装】ZJ版
    【转】解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
    Cache,MemCache,Application,Cookie等其它缓存汇总
    点击弹出li所在的序列号
    【转】js实现复制到剪贴板功能,兼容所有浏览器
    前端效果——持续更新。。。
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075300.html
Copyright © 2011-2022 走看看