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

奇怪 为什么我都除以1000了 怎么数组还得开那么大才过、、郁闷

Posted by Drecik__ at 2011-04-29 23:45:28 on Problem 2063
#include <iostream>
#define MAX(A, B) (A) > (B)? (A):(B)
using namespace std;
int f[101000];
struct money
{
	int mone;
	int increa;
}p[20];
int main()
{
	int t;
	cin >> t;
	while (t--)
	{
		int n, year;
		cin >> n >> year;
		int m;
		cin >> m;
		for (int k = 1; k <= m; ++k)
		{
			cin >> p[k].mone >> p[k].increa;
			p[k].mone /= 1000;
		}
		int temp = n;
		n /= 1000;
		while (year--)
		{
			int i;
			memset(f, 0, sizeof(f));
			for (i = 1; i <= m; ++i)
			{
				for (int j = p[i].mone; j <= n; ++j)
				{
					f[j] = MAX(f[j], f[j-p[i].mone] + p[i].increa);
				}
			}
			temp += f[n];
			n = temp/1000;
		}
		cout << temp << endl;
	}
	return 0;
}

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