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

请高人看看,小弟初学ACM不知道用什么方法做题效率高,还有这题的代码自己测试正确,这里确实WA,感激涕零~~

Posted by Almighty at 2010-04-17 22:42:17 on Problem 1007
#include<stdio.h>
#include<stdlib.h>
char a[5200];
int length,total,b[202],*c=b-1;
typedef struct lis{int i;int j;struct lis *next;}lis;
lis * initial(lis *a)
{
	a=(lis *)malloc(sizeof(lis));
	a->next=NULL;
	return a;
}
lis * in(lis *a,int i,int j)
{
	lis *p,*q,*r;
	p=(lis *)malloc(sizeof(lis));
	p->i=i;
	p->j=j;
	p->next=NULL;
	if(!a->next)
	{
		a->next=p;
	//	p->next=NULL;
		return a;
	}
	r=a;
	q=a->next;
	while(q!=NULL&&q->i<=i)
	{
		q=q->next;
		r=r->next;
	}
		p->next=r->next;
		r->next=p;
		return a;
//	p->next=q->next;
//	q->next=p;
//	return a;
}
int main()
{
	lis *p;
	int i,j,k;
	scanf("%d %d",&length,&total);
	for(i=0;i<total;i++)
	{
		scanf("%s",a+i*52);
		*(a+(i+1)*52-1)=0;
	}
	for(i=0;i<total;i++)
	{
		for(j=0;j<length;j++)
		{
			for(k=j+1;k<length;k++)
			{
				if(a[i*52+k]<a[i*52+j])
					*(a+(i+1)*52-1)=*(a+(i+1)*52-1)+1;
			}
		}
	}
	p=initial(p);
	for(i=0;i<total;i++)
	{
		p=in(p,*(a+(i+1)*52-1),i);
	}
	p=p->next;
//	printf("\n");
	while(p)
	{
		printf("%s\n",a+p->j*52);
		p=p->next;
	}

}

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