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 |
终于ac了,但时间消耗也太大了,是因为用map的关系吗?In Reply To:我用的map+int来算,可老是WA,在本地侧没有问题阿,那位高手来帮忙看一下 Posted by:czq1285 at 2005-09-22 15:43:11 > #include <iostream> > #include <map> > #include <string> > #include <math.h> > #include <iomanip> > using namespace std; > > int main() > { > bool dup=false; > int n,m,count; > map <long,int> number; > map <long,int>::iterator it; > long numTmp; > string numInput; > const int nummap[26]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9}; > cin >> n; > for( int i = 0; i < n; i++) > { > cin>>numInput; > count = 7; > numTmp = 0; > m = 0; > while(count) > { > if(numInput[m]>='0'&&numInput[m]<='9') > { > numTmp+=(numInput[m]-'0')*int(pow( 10.0,--count)); > } > else if(numInput[m]>='A'&&numInput[m]<='Z') > { > numTmp+=nummap[numInput[m]-'A']*int(pow( 10.0,--count)); > } > m++; > } > number[numTmp] += 1; > > } > for( it = number.begin();it != number.end(); it++) > { > if((*it).second>1) > { > cout<<setfill('0') > <<setw( 3) > <<(*it).first/10000 > <<'-' > <<setfill('0') > <<setw(4) > <<(*it).first%10000 > <<' '<<(*it).second > <<endl; > dup=true; > } > } > if( dup == false ) > cout << "No duplicates." << endl ; > return 0; > } > > > Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator