递推之整数划分问题(1)

原创 2013年12月03日 16:40:53

题目大致意思应该是 分配i辆汽车搬运j台电脑的问题,与整数分解类似可以用递推来解决。

 

关键代码:

    public int trans(int i,int j){     //i辆车 j台电脑

        if(j<i) return 0;
        if(i==1){
            return 1;
        }
        return trans(i-1,j-1)+trans(i,j-i);

    }

 

注:题目前提是不许某辆汽车搬运0台

(i辆汽车搬运j台电脑的方案数)=(有一辆仅搬1台的方案数)+(所有车辆搬一台以上的方案数)

故得递推式:

trans( i, j )  =  trans(i-1,j-1)+trans(i,j-i);

这里trans( i, j ) 的含义是i辆汽车搬运j台电脑,并且不允许某辆汽车为空的总的方案数,

所以递推式的下界:         if(j<i)   return 0;
                                             if(i==1)  return 1;
       

java求解代码如下:

 

import java.util.Date;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Main m=new Main();
        Scanner scan=new Scanner(System.in);
        int i,j;

        while(true){
        j=scan.nextInt();          
        i=scan.nextInt();       
        if(i==0&&j==0) break;
        long time1=new Date().getTime();
        System.out.println(m.trans(i,j));
        System.out.println(new Date().getTime()-time1+"时间");     
        }
       
    }
    public int trans(int i,int j){     //i辆车 j台电脑

        if(j<i) return 0;
        if(i==1){
            return 1;
        }
        return trans(i-1,j-1)+trans(i,j-i);

    }
}

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

整数划分问题(递归&递推)

1:问题描述: 整数划分问题是将正整数n表示成一系列正整数之和:n=n1+n2+n3+...+nk,其中n1>=n2>=n3>=...nk>=1,这种表示方法称为整数划分。求正整数n的不同划分个数。 ...

整数划分相关递推

前面讨论的“石子合并”问题也属于划分问题,同时前面还讨论了“前10个阶乘所能构成和为n的方法数”这样的问题,已经基本属于整数划分的问题了,本小节,根据碰到的一些整数划分问题给出算法分析与解决。 一....

0/1背包问题(递归解决,递推解决)

0-1背包问题:  有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。  这个问题的特点是:每...

HDU 2065 "红色病毒"问题 递推题 (2011-1-1 16:39)

HDU 2065 "红色病毒"问题 递推题 2010-02-04 16:39 AC code: #include int main() {    ...

【算法设计与分析】1、整数划分问题

#include using namespace std; /* void show(int *put, int len) //一个输出函数 { for(int i=0 ; i < len ;...

算法1.复数乘积和整数划分问题

设 (1) 算法设计思路 xy=(ac-bd)+(ad+bc)i可以转换成xy=(ac-bd)+((a+b)(c+d)-ac-bd)i,即为一个3次乘法计算。 在对...

算法(1)整数划分问题之递归解决

今日,阅读《ACM/ICPC 算法训练》时,发现一道名为“整数划分”的题,书上解释极为模糊,自己研究了一下此题,将其解决,记录下解题思路,以备以后有用时快速理解;   一,题意简述   将整数表示...

背包问题的递推解决

HDOJ 1223 java大整数递推

又有月赛了  虽然已经是大四实习的老人了 但是还是没忍住做了一题。。 翻了一道没人A的题看了下~ 大致题意是有N个数,请问有多少种大小关系 比如3个数就是: 1) A=B=C 2) A=B ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)