poj 1002 水
2015-11-02 16:41
369 查看
#include<iostream> #include<map> #include<string> #include<algorithm> #include<fstream> #include<cmath> #include<vector> #include<queue> #include<map> #include<math.h> using namespace std; #define lch(i) ((i)<<1) #define rch(i) ((i)<<1|1) #define sqr(i) ((i)*(i)) #define pii pair<int,int> #define mp make_pair #define FOR(i,b,e) for(int i=b;i<=e;i++) #define FORE(i,b,e) for(int i=b;i>=e;i--) #define ms(a) memset(a,0,sizeof(a)) const int maxnum =2005; const int mod = 10007; int n,m; map<char,int> trans; map<string,int> rec; int cmp(pair<string,int> a,pair<string,int> b){ return a.second<b.second; } void preprocess(){ int num=1; FOR(i,0,15){ if(i%3==0) num++; trans['A'+i]=num; } trans['A'+17]=7; trans['A'+18]=7; num = 7; FOR(i,19,24){ if((i-1)%3==0) num++; trans['A'+i]=num; } } //#define _DEBUG_ 1; int main() { #ifdef _DEBUG_ fstream fin("G:/1.txt"); #else #define fin cin #endif preprocess(); fin>>n; char tmp[100],transtmp[9]; while(n--){ scanf("%s",tmp); int len = strlen(tmp); int num = 0; FOR(i,0,len-1){ if(tmp[i]=='-')continue; if(tmp[i]>='0'&&tmp[i]<='9') transtmp[num++]=tmp[i]; else transtmp[num++]=trans[tmp[i]]+'0'; if(num==3){ transtmp[num]='-'; num++; } } transtmp[num]='\0'; rec[transtmp]++; } int countn=0; for(map<string,int>::iterator mi=rec.begin();mi!=rec.end();mi++){ if(mi->second>1){ printf("%s %d\n",mi->first.c_str(),mi->second); countn++; } } if(countn==0) printf("No duplicates.\n"); return 0; }
相关文章推荐
- 初学ACM - 组合数学基础题目PKU 1833
- POJ ACM 1001
- POJ ACM 1002
- POJ 2635 The Embarrassed Cryptographe
- POJ 3292 Semi-prime H-numbers
- POJ 2773 HAPPY 2006
- POJ 3090 Visible Lattice Points
- POJ-2409-Let it Bead&&NYOJ-280-LK的项链
- POJ-1695-Magazine Delivery-dp
- POJ1523 SPF dfs
- POJ-1001 求高精度幂-大数乘法系列
- POJ-1003 Hangover
- POJ-1004 Financial Management
- 用单调栈解决最大连续矩形面积问题
- 2632 Crashing Robots的解决方法
- 1573 Robot Motion (简单题)
- POJ 1200 Crazy Search(简单哈希)
- 【高手回避】poj3268,一道很水的dijkstra算法题
- POJ 1088 滑雪
- poj2387 Til the Cows Come Home—Dijkstra模板