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

那个程序有一个不太明显的错误

Posted by number at 2006-03-23 00:14:30 on Problem 1042
In Reply To:这个和正向,反向关系不大吧 Posted by:semonteer at 2006-03-22 22:55:31
//下面这个程序是可以AC的(我改过了)

//循环从n到1所以tt[]的总和总是大于best[],因此在fish = max_fish时,
//第一个不相同的值tt[i] 必然大于 best[i], 也就是,无论是<, 还是<=都应
//该会break, 完全不需要那个循环.结果由于一个小错误,加上后反而出了问题

//数据是极少错的,在怀疑数据有错之前,还是先怀疑怀疑自己的程序吧

#include <stdio.h>
#include<iostream.h>
int n,h;
int f[26],d[26],t[26];
int ff[26],tt[26];
int best_t[26],max_fish;

int main()
{
	int i,j,k,left_time,fish;
	
	cin>>n;
	while(n>0)
	{
		cin>>h;
		for(i=1;i<=n;i++)
		{
			cin>>f[i];
		}
		for(i=1;i<=n;i++)
		{
			cin>>d[i];
		}
		t[1] = 0;
		for(i=2;i<=n;i++)
		{
			cin>>t[i];
			t[i] += t[i-1];
		}
		max_fish = 0;
		for(k=n;k>=1;k--)
		{
			fish = 0;
			left_time = h*60-t[k]*5;//////
			for(i=1;i<=n;i++)
			{
				ff[i] = f[i];
				tt[i] = 0;
			}
			while(left_time > 0)
			{
				j = 1;
				for(i=1;i<=k;i++)
				{
					if(ff[i] > ff[j])
						j = i;
				}
				if(ff[j] == 0)////鱼都没了;
					break;
				tt[j] += 5;
				fish += ff[j];
				ff[j] -= d[j];
				if(ff[j] <=0)
					ff[j] = 0;
				left_time -= 5;
			}
			//left_time>=0;
			tt[1] += left_time;
			if(fish > max_fish)/// = ?????如何抉择呢??
			{
				for(i=1;i<=n;i++)
					best_t[i] = tt[i];
				max_fish = fish;
			}
			else
				if( fish==max_fish )
				{
					for(i=1;i<=n;i++)
						if(best_t[i] <tt[i])//奇怪之处:改成best_t[i] <tt[i]就过不了!!!!
							break;
					if(i != n+1)
					{
						for(i=1;i<=n;i++)best_t[i] = tt[i];
						max_fish = fish;
					}
				}
		}//////////////////////////////////
		for(i=1;i<n;i++)
		{
			cout<<best_t[i]<<", ";
			best_t[i] = 0;
		}
		cout<<best_t[n]<<endl;
		best_t[n] = 0;

		 cout<<"Number of fish expected: "<<max_fish<<endl;
		cout<<endl;
		cin>>n;
	}
	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