zoukankan      html  css  js  c++  java
  • Java实现 蓝桥杯 图书排列(全排列)

    标题:图书排列

    将编号为1~10的10本书排放在书架上,要求编号相邻的书不能放在相邻的位置。
    请计算一共有多少种不同的排列方案。

    注意,需要提交的是一个整数,不要填写任何多余的内容。

    9 9
    10 9
    9 9
    9 9
    9 10
    7 7
    9 7

    package 第三次模拟;
    
    public class Demo3图书排列 {
    	static int res=0;  
        public static boolean check(int a[])  
        {  
            int l=a.length;  
            for(int i=0;i<l-1;i++)  
            {  
    //          两个相邻的元素,如果它们的数字是相邻的,就是两个元素相减的绝对值 == 1;那么就return false;
                if(Math.abs(a[i]-a[i+1])==1)  
                {  
                    return false;  
                }  
            }  
            return true;  
        }  
    //    static int count=0;
    //    将a[]中的a[x] 与   a[y]  的值互换
        public static void swap(int a[],int x,int y)  
        {  
        	//位运算转换节省内存,如果x==y的话,无需转换
        	if(x==y) return; 
        	
        	a[x]^=a[y];  
        	a[y]^=a[x];  
        	a[x]^=a[y]; 
    //        int temp =a[x];  
    //        a[x]=a[y];  
    //        a[y]=temp;  
     
        }  
        public static void dfs(int a[],int begin,int end)  
        {  
            if(begin==end)  
            {  
    //          检查相邻的书是否被放在了相邻的位置  :以数字来代表书;相邻两个数字的差的绝对值要不等于1
                if(check(a))  
    //              如果相邻的两个数字的差的绝对值不等于1,则找到了一种方案。
                res++;  
            }  
    
            for(int i = begin; i <= end; i++)  
            {  
                swap(a,begin,i);  
                dfs(a,begin+1,end);  
                swap(a,begin,i);  
            }  
        }  
        public static void main(String[] args) {  
    
            int a[]={1,2,3,4,5,6,7,8,9,10};  
            dfs(a,0,a.length-1);  
            System.out.println(res);  
        }
    }
    
    
  • 相关阅读:
    linux学习 建立静态库,动态库,写简单的makefile
    C++中顶层const和底层const
    BDB (Berkeley DB)数据库简单介绍(转载)
    Java中Map的使用
    Spring MVC 3 深入总结
    nvl,空时的推断和取值
    java堆栈 (转)
    mybatis--面向接口编程
    HDU 4888
    socket编程——一个简单的样例
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075392.html
Copyright © 2011-2022 走看看