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

Re:计数排序+哈希处理+printf的0参数

Posted by wonderfulghost at 2011-05-18 09:40:18 on Problem 1002
In Reply To:计数排序+哈希处理+printf的0参数 Posted by:jinyingqi at 2011-05-17 10:53:38
> 简单字符串处理与排序。数据规模比较大,一般的排序很可能超时。这里采用空间换时间的计数排序,字母数字转换采用哈希表,输出的时候注意printf中0参数的用意。
> 
> C++源码
> 
> #include <stdio.h>
> 
> const int N = 10000000;
> unsigned int times[N];
> int main()
> {
>     int num;
>     //   talbe[]="ABCDEFGHIGKLMNOPQRSTUVWXYZ"
>     char table[]="22233344455566670778889990", s[128];
> 
>     scanf("%d", &num);
>     for(int i=0;i<num;i++){
>         scanf("%s", s);
>         int sum = 0;
>         for(int j=0;s[j]!='\0';j++){
>             if(s[j]>='A' && s[j]<='Z')
>                 sum = sum*10 + table[(int)(s[j]-'A')]-'0';
>             else if(s[j]>='0' && s[j]<='9')
>                 sum = sum*10 + s[j]-'0';
>         }
>         times[sum]++;
>     }
>     int f=0;
>     for(int i=0;i<N;i++){
>         if(times[i]>=2){
>             f=1;
>             printf("%03d-%04d %d\n", i/10000,i%10000,times[i]);
>         }
>     }
>     if(f==0) printf("No duplicates.\n");
>     return 0;
> }
> 
> 转自:http://blog.csdn.net/koala002/archive/2011/05/17/6426325.aspx

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