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

能找到的数据都没问题,为什么就是WA啊!!恳请哪位大大帮忙看下吧

Posted by catcher_wang at 2009-08-22 16:33:00 on Problem 1042
#include <iostream>
using namespace std;
#define MAX 30
int n,h;
int f[MAX];
int d[MAX];
int t[MAX];//t[i]表示到达第i个湖在路上所花费时间,与题目的ti不同
int sum[MAX];//sum[i]表示终点为第i个湖所能钓到的最多数目
int time[MAX][MAX];//sum[i][j]表示终点为第个湖的情况在第j个湖所消耗的时间
int pos;//达到第pos个湖所能钓到的鱼最多
void solve(){
	int i,j,k,max,tempPos,tempH;
	int now[MAX];//当前各个湖所能钓到的鱼个数
	for(i=1;i<=n;i++){
		tempH=h-t[i];
		//cout<<tempH<<endl;
		for(j=1;j<=i;j++)
			now[j]=f[j];
		while(tempH>0){
			tempH--;
			max=0;
			for(j=1;j<=i;j++)
				if(max<now[j]){
					max=now[j];
					tempPos=j;
				}
			if(max==0)//1~i个湖的所有鱼已经钓完 
				break;
			time[i][tempPos]++;
			sum[i]+=max;
			now[tempPos]-=d[tempPos];
		}
	}
	pos=1;
	for(i=2;i<=n;i++)
		if(sum[i]>sum[pos])
			pos=i;
}
int main(){
	int i,temp;
	while(scanf("%d",&n)!=EOF&&n){		
		scanf("%d",&h);
		h*=12;
		memset(t,0,sizeof(t));
		memset(sum,0,sizeof(sum));
		memset(time,0,sizeof(time));
		for(i=1;i<=n;i++)
			scanf("%d",&f[i]);
		for(i=1;i<=n;i++)
			scanf("%d",&d[i]);
		for(i=2;i<=n;i++){
			scanf("%d",&temp);
			t[i]=t[i-1]+temp;
		}
		solve();
		printf("%d",time[pos][1]*5);
		for(i=2;i<=n;i++)
			printf(", %d",time[pos][i]*5);
		printf("\nNumber of fish expected: %d\n\n",sum[pos]);
	}
	system("pause");
	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