| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:给你们一个出测试数据的程序吧,运行一下就输入数据输出数据都出来了,如果全对,你的程序没过找我,数据太多,你们可以写个文件比对程序In Reply To:给你们一个出测试数据的程序吧,运行一下就输入数据输出数据都出来了,如果全对,你的程序没过找我,数据太多,你们可以写个文件比对程序 Posted by:HH_YT at 2012-08-15 10:38:48 > #include<stdio.h>
> #include<string.h>
> #include<stdlib.h>
> struct G
> {
> int t;
> int p;
> int s;
> }gangster[101],gangster1[101];
> int f[101];
> int n,k,t;
> int n1;
> int dp[101];
> FILE *in,*out;
> int abs(int a,int b)
> {
> return a>b?a-b:b-a;
> }
> int max(int a,int b)
> {
> return a>b?a:b;
> }
> int init()
> {
> int i,j;
> //memset(f,0,sizeof(f));
> for(i=1;i<=n;i++)
> {
> gangster[i].t=rand()%t+1;
> fprintf(in,"%d ",gangster[i].t);
> // if(gangster[i].t>t)
> // f[i]=1;
> }
> fprintf(in,"\n");
> for(i=1;i<=n;i++)
> {
> gangster[i].p=rand()%300+1;
> fprintf(in,"%d ",gangster[i].p);
> }
> fprintf(in,"\n");
> for(i=1;i<=n;i++)
> {
> gangster[i].s=rand()%k+1;
> fprintf(in,"%d ",gangster[i].s);
> // if(gangster[i].s>k)
> // f[i]=1;
> }
> fprintf(in,"\n");
> int flag[101];
> memset(flag,0,sizeof(flag));
> n1=0;
> for(i=1;i<=n;i++)
> {
> if(flag[i]==1||f[i]==1)
> continue;
> memcpy(&gangster1[++n1],&gangster[i],sizeof(G));
> for(j=i+1;j<=n;j++)
> {
> if(gangster[i].t==gangster[j].t&&gangster[i].s==gangster[j].s)
> {
> gangster1[n1].p+=gangster[j].p;
> flag[j]=1;
> }
> }
> }
> gangster1[0].t=0;
> gangster1[0].p=0;
> gangster1[0].s=0;
> dp[0]=0;
> for(i=1;i<=n1;i++)
> dp[i]=-1;
> G temp;
> for(i=1;i<=n1;i++)
> for(j=i+1;j<=n1;j++)
> {
> if(gangster1[i].t>gangster1[j].t)
> {
> memcpy(&temp,&gangster1[i],sizeof(G));
> memcpy(&gangster1[i],&gangster1[j],sizeof(G));
> memcpy(&gangster1[j],&temp,sizeof(G));
> }
> }
> for(i=1;i<=n1;i++)
> {
> for(j=0;j<i;j++)
> {
> if(dp[j]==-1)
> continue;
> if(gangster1[i].t-gangster1[j].t>=abs(gangster1[i].s,gangster1[j].s))
> {
> dp[i]=max(dp[i],dp[j]+gangster1[i].p);
> }
> }
> }
> return 0;
> }
> int main()
> {
> int i;
> int cases=1000;
> in=fopen("in.txt","w");
> out=fopen("out.txt","w");
> while(cases--)
> {
> n=rand()%100+1;
> k=rand()%100+1;
> t=rand()%30000+1;
> fprintf(in,"%d %d %d\n",n,k,t);
> int best=0;
> init();
> for(i=0;i<=n1;i++)
> if(dp[i]>best)
> best=dp[i];
> fprintf(out,"%d\n",best);
> }
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator