Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

哪位帮忙看看,java写的

Posted by jucai at 2007-04-06 20:06:53 on Problem 2063
In Reply To:又是TLE。。。。。。郁闷哪!!! Posted by:jucai at 2007-04-06 20:05:43
import java.util.*;
class Bonds
{
	int num;
	int in;
	Bonds(int n,int i){
		num = n;
		in = i;
	}
}
class Main 
{
	public static void main(String[] args) 
	{
		Scanner cin = new Scanner(System.in);
		int cs = cin.nextInt();
		while (cs != 0)
		{
			int capital = cin.nextInt();
			int years = cin.nextInt();
			int cbonds = cin.nextInt();
			Bonds bonds [] = new Bonds[cbonds];
			for(int i = 0 ; i < cbonds; i ++)
				bonds[i] = new Bonds(cin.nextInt(),cin.nextInt());
			int result = endCapital(capital,years,cbonds,bonds);
			System.out.println(result);
			cs --;
		}
	}
	public static int endCapital(int capital,int years,int cbonds,Bonds [] bonds){
		if( years == 0)	return capital;
		else {
			int [][]result = new int[cbonds][10000] ;
			for (int i = 0;i <= capital/bonds[0].num ; i ++ ){
				result[0][i] = i*bonds[0].in;
				}
			for(int i = 1; i < cbonds; i ++)
				for(int j = 0; j <= capital/bonds[i].num; j ++){
				int sum1 = 0;
				for(int k = 0; k <= capital/bonds[i-1].num; k ++){
					int sum2 = 0;
					if(j*bonds[i].num+k*bonds[i-1].num <= capital)
						 sum2 = j*bonds[i].in+result[i-1][k];
					if(j*bonds[i].num+k*bonds[i-1].num > capital)
						break;
					if(sum2 > sum1)
						sum1 = sum2;
				}
				result[i][j] = sum1;
			}
			int max = -1;
			for(int i = 0; i < capital/bonds[cbonds-1].num; i ++)
				if(result[cbonds-1][i] > max)
				max = result[cbonds-1][i];
			return endCapital(capital+max,years -1,cbonds,bonds);
		}
	}
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator