zoukankan      html  css  js  c++  java
  • 放苹果

    描述

    题目描述

    把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

    输入

    每个用例包含二个整数M和N。0<=m<=10,1<=n<=10。<=n<=10<=m<=10

    样例输入

    7 3

    样例输出

    8

        

    /**

         * 计算放苹果方法数目


         * 输入值非法时返回-1

         * 1 <= m,n <= 10<><= m,n <= 10<>

         * @param m 苹果数目

         * @param n 盘子数目数

         * @return 放置方法总数

         * 

         */

        public static int count(int m, int n)

    知识点 循环
    运行时间限制 10M
    内存限制 128
    输入

    输入两个int整数

    输出

    输出结果,int型

    样例输入 7 3
    样例输出 8
    package com.oj5;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    
    public class Oj {
    	static int count;
    	private static void find(int[] flag,int pos,int appleNum,int plateNum,List list){
    		//System.out.println(appleNum+" "+plateNum+" "+pos);
    		if(pos==appleNum){
    			int[] plates = new int[plateNum+1];
    			for(int i = 0;i < appleNum; i++)
    				plates[flag[i]]++;
    			for(int i = 1; i<= plateNum-1; i++)
    				for(int j = 1;j <= plateNum-i; j++)
    					if(plates[j]<plates[j+1]){
    						int temp = plates[j];
    						plates[j] = plates[j+1];
    						plates[j+1] = temp;
    					}
    			boolean isExist = false; 
    			for(int i = 0;i < list.size(); i++){
    				int[] arr = (int[]) list.get(i);
    				int j = 1;
    				for(;j <= plateNum; j++)
    					if(plates[j]!=arr[j])
    						break;
    				if(j==plateNum+1){
    					isExist = true;
    					break;
    				}
    			}
    			if(!isExist)
    				list.add(plates);
    			return;
    		}
    		
    		for(int i = 1;i <= plateNum; i++){
    			flag[pos] = i;
    			find(flag,pos+1,appleNum,plateNum,list);
    		}
    	}
    	
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		int appleNum = in.nextInt();
    		int plateNum = in.nextInt();
    		int[] flag = new int[appleNum];
    		List<Integer[]> list = new ArrayList<Integer[]>();
    		find(flag,0,appleNum,plateNum,list);
    		System.out.println(list.size());
    	}
    }
    

      

  • 相关阅读:
    Unity Shader _Time
    常见纹理压缩格式
    U3D Transform组件
    java计算文件32位md5值
    Andoid 利用ndk-stack定位崩溃代码
    glsl计算sprite的亮度饱和度对比度
    Android项目文件结构
    Android Studio文件目录介绍
    Struts2配置dtd约束
    java系列--JSP的属性和内置对象
  • 原文地址:https://www.cnblogs.com/lxk2010012997/p/5396953.html
Copyright © 2011-2022 走看看