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

TLE???

Posted by htt5156 at 2011-04-02 22:22:37 on Problem 1002
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

const string map("22233344455566677778889999");
string convert(const string &s);

int main()
{
    vector<string> teleBook;
    teleBook.reserve(100000);
	string teleNum, teleNum_c;
	bool noDuplicate = true;
	int n,c;
	c = 0;
	cin >> n;
	while (c++ < n)
	{
		cin >> teleNum;
		teleNum_c = convert(teleNum);
		teleBook.push_back(teleNum_c);
	}

	sort(teleBook.begin(),teleBook.end());
	         
	
	for (int i = 0, j; i < n; i++)
	{
		for (j = i + 1; j < n; j++)
			if (teleBook[j] != teleBook[i])
				break;
				
		if (j - i > 1)
		{
			cout << teleBook[i] << ' ' << j - i << endl;
			noDuplicate = false;
		}
		i = j - 1;
	}
	if (noDuplicate)
		cout << "No duplicates." << endl;
	system("PAUSE");
	return 0;
}

string convert(const string &s)
{
	int i, k;
	i = k = 0;
	string s2;
    int len = s.length();
    while (k < 8 && i < len)
	{
		if (s[i] == '-')
		{
            i++;
			continue;
        }
        if (k == 3)
        {
			s2.push_back('-');
			k++;
        }

		if (s[i] >= 'A' && s[i] <= 'Z')
		{
            k++;
			s2.push_back(map[s[i] - 'A']);
        }
		else
		{
            k++;
			s2.push_back(s[i]);
        }
		i++;
    }
		return s2;
    
}


难道用vector和string就会超时 我明明 reserve了100000了的呀

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