| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:哪位大牛给帮忙看看,用stl怎么老是超时?用纯c也是超时啊,郁闷In Reply To:哪位大牛给帮忙看看,用stl怎么老是超时?用纯c也是超时啊,郁闷 Posted by:shuaihujun at 2007-12-25 12:16:54 > #include <stdio.h>
> #include <iostream>
> #include <vector>
> #include <string>
> #include <algorithm>
> using namespace std;
>
> int main()
> {
> char c[24] = {'2', '2', '2', '3', '3', '3', '4', '4', '4', '5', '5', '5', '6', '6', '6', '7', '7', '7', '8', '8', '8', '9', '9', '9'};
> vector<string> str;
> str.reserve(1000);
> double num;
> cin >> num;
> string str1, str2;
> for(int i = 0; i < num; i ++)
> {
> cin >> str1;
> for(int j = 0; j < str1.length(); j ++)
> {
> if((str1[j] >= 65)&&(str1[j] <= 80))
> str2.insert(str2.end(), c[str1[j] - 65]);
> else if((str1[j] >= 82)&&(str1[j] <= 89))
> str2.insert(str2.end(), c[str1[j] - 66]);
> else if((str1[j] >= 48)&&(str1[j] <= 57))
> str2.insert(str2.end(), str1[j]);
> }
> str.push_back(str2);
> str1.erase(0, str1.length());
> str2.erase(0, str2.length());
> }
> sort(str.begin(), str.end());
> bool Y = false;
> for(vector<string>::iterator k = str.begin(); k < str.end(); )
> {
> int count = 0;
> vector<string>::iterator l = k + 1;
> while((l < str.end())&&(*k == *l))
> {
> Y = true;
> count ++;
> k ++;
> l ++;
> }
> if(count != 0)
> {
> string s1 = *k;
> for(int m = 0; m < 7; m ++)
> {
> if(m == 2)
> {
> printf("%c", s1[m]);
> printf("-");
> }
> else
> printf("%c", s1[m]);
> }
> printf(" %d\n", count + 1);
> }
> k = l;
> }
> if(Y == false)
> printf("No duplicates.\n");
>
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator