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 hongqin at 2006-03-28 16:36:36 on Problem 1002
#include"stdio.h"
#include"string.h"
tran(char ch[],char a[],char b[])
{
	char str[30];
	int i,j=0,r,len,lena,lenb;
	len=strlen(ch);
	lena=strlen(a);
	lenb=strlen(b);
	for(i=0;i<len;i++)
	{
		if(ch[i]=='-')
			continue;
		if(j==3)
			str[j++]='-';
		for(r=0;r<lena;r++)
			if(ch[i]==a[r])
				break;
			str[j++]=b[r];
	}
	str[j]='\0';
	strcpy(ch,str);
}
void main()
{
	long int n,i,t,j=0,r,s=0,k=0,p=0,time[10001];
	char st[20],str[10001][20],ch[20],a[]="01ABC2DEF3GHI4JKL5MNO6PRS7TUV8WXY9",b[]="0122223333444455556666777788889999";
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		r=1;
		t=1;
		scanf("%s",st);
		tran(st,a,b);
		while(r<=s)
		{
			t=strcmp(st,str[r]);
			if(t!=0)
				r++;
			else 
				break;
		}
		if(r>s)
		{
			strcpy(str[++s],st);
			time[s]=1;
		}
		else
			time[r]++;
	}
	strcpy(str[s+1],"zzzzzzzzzzzzzzzzzzz");
	time[s+1]=2;
	for(i=1;i<=s;i++)
	{
		if(time[i]==1)
		{
			p++;
			continue;
		}
		strcpy(ch,str[i]);
		for(j=i+1;j<=s+1;j++)
		{
			if(time[j]==1)
				continue;
			t=strcmp(str[i],str[j]);
			if(t>0)
			{
				t=0;
				strcpy(st,str[i]);
				strcpy(str[i],str[j]);
				strcpy(str[j],st);
				k=time[i];
				time[i]=time[j];
				time[j]=k;
			}
		}
		if(p!=s)
			printf("%s %d\n",str[i],time[i]);
	}
	if(p==s)
		printf("No duplicates.\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