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

Re:望poj想codeforce那样提供相关测试数据,WA的人也好改!!!!

Posted by 13107222 at 2012-07-30 15:45:26 on Problem 1821
In Reply To:望poj想codeforce那样提供相关测试数据,WA的人也好改!!!! Posted by:13107222 at 2012-07-30 15:40:44
以下是错误代码:

#include<iostream>
#include<cstring>
#include<cstdlib>

using namespace std;

struct worker{
	int l,p,s;
}s[105];

int dp[105][16005];
int d[16005],l,r;

int cmp(const void *a,const void *b)
{
	return (*(worker *)a).s-(*(worker *)b).s;
}

int main()
{
	int i,j,k,n,m,ll,rr,dat;
	while(cin>>n>>m)
	{
	for(i=1;i<=m;i++)
		cin>>s[i].l>>s[i].p>>s[i].s;
	qsort(s+1,m,sizeof(s[0]),cmp);
	for(i=0;i<=n;i++)
		dp[0][i]=0;
	for(i=1;i<=m;i++)
	{
		ll=s[i].s-s[i].l;
		if(ll<0)
			ll=0;
		rr=s[i].s+s[i].l-1;
		if(rr>n)
			rr=n;
		for(j=0;j<=n;j++)
			dp[i][j]=dp[i-1][j];
		l=0; r=-1;
		for(j=ll;j<s[i].s;j++)
		{
			while(r>=l&&(dp[i-1][j]+(s[i].s-j)*s[i].p>=dp[i-1][d[r]]+(s[i].s-d[r])*s[i].p))
				--r;
			d[++r]=j;
		}
		for(j=s[i].s;j<=rr;j++)
		{
			if(j-d[l]>s[i].l)
				++l;
			dat=dp[i-1][d[l]]+(j-d[l])*s[i].p;
			if(dat>dp[i][j])
				dp[i][j]=dat;
		}
		for(j=rr+1;j<=n;j++)
			dp[i][j]=dp[i][rr];
	}
	printf("%d\n",dp[m][n]);
	}
}

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