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 yuenyun at 2003-07-08 14:23:12 on Problem 1002
In Reply To:Re:这样怎么还不对啊?总草时,谁能帮我解决一下? Posted by:gz2001 at 2003-07-08 11:20:30
#include <iostream>

using namespace std;


int cmp(const void *t1,const void *t2) 
 {int *a,*b; 
  a=(int *)t1; b=(int *)t2; 
  if (*a>*b) return 1; 
  if (*a<*b) return -1; 
  return 0; 
 } 
void main()
{
	int a[100000];
	char b[50];
	int num;
	cin>>num;
	if (num<2)
   {
		cin>>b;
	    cout<<"No duplicates.";
	}
	else 
	{
	for (int i=0;i<num;i++)
	{
		cin>>b;
        int p1=0;
			int result=0;
		for (int j=0;j<strlen(b);j++)
		{
		        char tmp=b[j];
				switch(tmp)
				{
				case('A'):
				case('B'):
				case('C'):
					{
						b[j]='2';
					    break;
					}
				case('D'):
				case('E'):
				case('F'):
					{
						b[j]='3';
						break;
					}
				case('G'):
				case('H'):
				case('I'):
					{
						b[j]='4';
						break;
					}
				case('J'):
				case('K'):
				case('L'):
					{
						b[j]='5';
						break;
					}
				case('M'):
				case('N'):
				case('O'):
					{
						b[j]='6';
						break;
					}
				case('P'):
				case('R'):
				case('S'):
					{
						b[j]='7';
						break;
					}
				case('T'):
				case('U'):
				case('V'):
					{
						b[j]='8';
						break;
					}
				case('W'):
				case('X'):
				case('Y'):
					{
						b[j]='9';
						break;
					}
				
				case(' '):
					{
						b[j]='.';
						break;
					}
				}
	

				  if (b[j]>='0'  &&  b[j]<='9')
				  {
					  b[p1++]=b[j];
					  result=10*result+b[j]-('1'-1);
				  }
		}
		a[i]=result;
	}
  qsort(a,num,sizeof(int),cmp);
int flag=0;
  int pp=0;
	while(pp<num)
	{
		int sum=1;
		int i=1;
		while(a[pp]==a[pp+i])
		{
			i++;
			sum++;
		}
		if (sum>1)
		{
		    int x1=a[pp]/10000;
			int y1=a[pp] % 10000;
	
			if (x1>99)
			         cout<<x1<<"-";
			else if (x1>9)
			        cout<<"0"<<x1<<"-";
			else 
				cout<<"00"<<x1<<"-";
			//cout<<"-";
			if (y1>999)
				cout<<y1<<" "<<sum<<endl;
			else if (y1>99)
				cout<<"0"<<y1<<" "<<sum<<endl;
			else if (y1>9)
				cout<<"00"<<y1<<" "<<sum<<endl;
			else if (y1>=0)
				cout<<"000"<<y1<<" "<<sum<<endl;
				flag=1;
			//	cout<<" "<<sum<<endl;
			}
		
        pp=pp+i;
	}
if (flag==0)
  cout<<"No duplicates.";
	}
}

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