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 acidsweet at 2012-09-18 11:39:57 on Problem 1002
这是源码,是用hash做的,也不知道会不会超时

#include <iostream>
#include <string>
using namespace std;
int hash[10000000]={0};
/*  A, B, and C map to 2 
	D, E, and F map to 3 
	G, H, and I map to 4 
	J, K, and L map to 5 
	M, N, and O map to 6 
	P, R, and S map to 7 
	T, U, and V map to 8 
	W, X, and Y map to 9   */ 
	int HashMap(string temp)
{
	int num=0;
	int xxx;
	for(int i=0;i<(int)temp.size();i++)
	{	
		switch(temp[i])
		{
			case 'A':
			case 'B':
			case 'C':xxx=2;break;
			case 'D':
			case 'E':
			case 'F':xxx=3;break;
			case 'H':
			case 'I':
			case 'G':xxx=4;break;
			case 'J':
			case 'K':
			case 'L':xxx=5;break;
			case 'M':
			case 'N':
			case 'O':xxx=6;break;
			case 'P':
			case 'R':
			case 'S':xxx=7;break;
			case 'T':
			case 'U':
			case 'V':xxx=8;break;
			case 'W':
			case 'X':
			case 'Y':xxx=9;break;
			case '-':xxx=-1;break;
			default:xxx=temp[i]-'0';			
			}
		if(xxx>=0)
		num=num*10+xxx;
	}
	return num;
}
int main()
{
	int times;
	cin>>times;
	string temp;
	int cur;
	int high;
	int low;
	int i;
	bool flag=false;
	for(i=0;i<times;i++)
	{
		cin>>temp;
		cur=HashMap(temp);
		hash[cur]++;
	}
	for(i=0;i<10000000;i++)
	{
		if(hash[i]>1)
		{
			flag=true;
			high=i/10000;
			low=i-high*10000;
			cout<<high<<'-'<<low<<" "<<hash[i]<<endl;
			}
		}
		if(!flag)
		cout<<"No duplicates."<<endl;
	return 0;
}

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