北大ACM(Question-1002)

Question:http://poj.org/problem?id=1002
 1 Memory: 1136K        Time: 813MS
 2 Language: C++        Result: Accepted
 3   4 #include <stdio.h>
 5 #include <stdlib.h>
 6 #include <string.h>
 7 #include <iostream>
 8
 9 using namespace std;
10 const char mp[26]={‘2‘,‘2‘,‘2‘,‘3‘,‘3‘,‘3‘,‘4‘,‘4‘,‘4‘,‘5‘,‘5‘,‘5‘,‘6‘,‘6‘,‘6‘,‘7‘,‘0‘,‘7‘,‘7‘,‘8‘,‘8‘,‘8‘,‘9‘,‘9‘,‘9‘};
11 int mycmp(const void *a,const void *b)
12 {
13     return strcmp((char*)a,(char*)b);
14 }
15 int main()
16 {
17     bool duplicate=false;
18     int len;
19     char c[100];//TIPS:该数组需要足够大的空间
20     char phone[100000][9];//由于字符数组需要‘\0‘作为结束符,所以增加一位
21     memset(phone,0,sizeof(phone));
22     cin>>len;
23     getwchar();
24     for(int i=0;i<len;i++)
25     {
26         cin>>c;
27         int clen=strlen(c);
28         for(int ch=0,j=0;ch<clen;ch++)
29         {
30             if(c[ch]==‘-‘) continue;
31             if(j==3) phone[i][j++]=‘-‘;
32             if(c[ch]>=‘A‘&&c[ch]<‘Z‘) c[ch]=mp[c[ch]-‘A‘];
33             phone[i][j++]=c[ch];
34         }
35     }
36     qsort(phone,len,sizeof(phone[0]),mycmp);
37     for(int m=0,cnt=1;m<len-1;m++)
38     {
39         if(strcmp(phone[m],phone[m+1])==0)
40         {
41             cnt++;
42             duplicate=true;
43             if(m==len-2) cout<<phone[m]<<" "<<cnt<<endl;
44         }
45         else
46         {
47             if(cnt>1) cout<<phone[m]<<" "<<cnt<<endl;
48             cnt=1;
49         }
50     }
51     if(!duplicate)
52     {
53         cout<<"No duplicates."<<endl;
54     }
55     return 0;
56 }

				
时间: 2024-11-05 23:31:22

北大ACM(Question-1002)的相关文章

北大ACM题库习题分类与简介(转载)

在百度文库上找到的,不知是哪位大牛整理的,真的很不错! zz题 目分类 Posted by fishhead at 2007-01-13 12:44:58.0 -------------------------------------------------------------------------------- acm.pku.edu.cn 1. 排序 1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1840, 2201, 2376, 23

北大ACM暑期培训课程目录(五)

本文出自:http://blog.csdn.net/svitter netFlow Ford-Fulkerson 深度优先搜索,制作一个流网络. 部分路径可能不合理. 对上次dfs的边就行重新筛选.每条边来个反向边. 再来一次dfs 发现还能找到一条路径. dfs->abtray edge->dfs stop when no new stream 容量相等. *残余网络 寻找变数最少的增广路径 通过bfs寻找增广路劲 Edmonds-Karp最短增广路算法 依然不是很好的算法. POJ1273

北大ACM暑期培训(1)——线段树,树状数组

本文出自:http://blog.csdn.net/svitter 今天ACM暑期实训开始了,今天讲述的内容是: 7.14  数据结构(一): 线段树,树状数组,二维线段树. 线段树:invertal tree (称为区间树更加合适) 作用:快速区间查询,用于解决区间统计的有关问题. 重点:同层节点不重叠. 每层最多有两个终止节点. 更新和进行区间分解的时间复杂度均为log(n); 方法:调用会多次使用递归更新插入查询: 空间:开空间的时候,一般情况下开4n大小,2*2log[n] - 1 <=

北大ACM暑期培训课程目录(四)

本文出自:http://blog.csdn.net/svitter Computational Geometry 计算几何 ACM中基本是最麻烦的部分. 几何代码都要自己写,STL中也没有.基本上. struct point 数乘,差乘,计算几何题目抄.一个数字由于误差积累造成大. 避免误差. 注意: a=b <=> |a-b| < e a<b <=> a-b < -e a<=b <=> a-b < e e 多10^-8 四舍六入五差 +-

北大ACM(POJ1003-Hangover)

Question:http://poj.org/problem?id=1003问题点:水题. 1 Memory: 220K Time: 0MS 2 Language: C++ Result: Accepted 3 4 #include <iostream> 5 using namespace std; 6 int calcCard(float f) 7 { 8 float sum=0; 9 int i=2; 10 for(;sum<f;i++) 11 { 12 sum+=1.0f/i;

北大ACM(Question-1753)

Question:http://poj.org/problem?id=1753 1 #include <iostream> 2 using namespace std; 3 bool a[4][4];//记录输入 4 bool b[4][4];//记录操作 5 bool c[4][4];//中间变量 6 bool judge() 7 { 8 int sum=0; 9 for(int i=0;i<4;i++) 10 { 11 for(int j=0;j<4;j++) 12 { 13

北大ACM(POJ1019-Number Sequence)

Question:http://poj.org/problem?id=1019 问题点:打表. 1 Memory: 392K Time: 16MS 2 Language: C++ Result: Accepted 3 4 #include <iostream> 5 #include <cmath> 6 using namespace std; 7 8 #define uint unsigned int 9 uint table[31269]; 10 uint a[6] = {0,1

北大ACM(POJ1012-Joseph)

Question:http://poj.org/problem?id=1012 问题点:约瑟夫环. 1 Memory: 220K Time: 329MS 2 Language: C++ Result: Accepted 3 4 #include <iostream> 5 using namespace std; 6 bool calc(int k,int m) 7 { 8 int pos=0; 9 int sum=2*k; 10 bool flag=true; 11 while(sum>

北大ACM(POJ1008-Maya Calendar)

Question:http://poj.org/problem?id=1008 问题点:日历转换. 1 Memory: 280K Time: 16MS 2 Language: C++ Result: Accepted 3 4 #include <iostream> 5 #include <string.h> 6 #include <malloc.h> 7 8 using namespace std; 9 const char* Haab_Month[19]={ 10 &