洛谷P2037 电话号码
P2037 电话号码
题目描述
一串由长长的数字组成的电话号码通常很难记忆。为了方便记忆,有种方法是用单词来方便记忆。例如用“Three Tens”来记忆电话3-10-10-10。
电话号码的标准形式是七位数字,中间用连字号分成前三个和后四个数字(例如:888-1200)。电话号码可以用字母来表示。以下是字母与数字的对应:
A,B和C对应2
D,E和F对应3
G,H和I对应4
J,K和L对应5
M,N和O对应6
P,R和S对应7
T,U和V对应8
W,X和Y对应9
你会发现其中没有字母Q和Z。电话中的连字号是可以忽略。例如TUT-GLOP的标准形式是888-4567,310-GINO的标准形式是310-4466,3-10-10-10的标准形式是310-1010。
如果两个电话号码的标准形式是一样的,那么这两个电话号码就是一样的。
现在有一本电话簿,请从中找出哪些电话号码是重复的。
输入输出格式
输入格式:
第一行一个正整数N,表示有多少个电话号码。
以下N行,每行一个电话号码,电话号码由数字、大写字母(除Q、Z)和连字符组成。电话号码长度不会超过1000。所有电话号码都合法。
输出格式:
将所有重复的电话号码按字典序以标准形式输出,并且在每个电话号码后跟一个整数,表示该电话号码共出现了多少次,电话号码和整数间用一个空格隔开。不要输出多余空行。
如果没有重复的电话号码,则输出:No duplicates.
输入输出样例
3
TUT-GLOP
3-10-10-10
310-1010
310-1010 2
说明
【数据范围】
对于30%的数据,N<=20。
对于50%的数据,N<=10000。
对于100%的数据,N<=100000。
#include<iostream>
#include<cstdio>
#include<cstring>
#define mod 1000003
using namespace std;
int t[],n;
long long map[];
char s[];
void Hash(char ch[],int len){
long long res=,now=;
for(int i=;i<=len;i++){
if(ch[i]<=''&&ch[i]>='')res=(res*+ch[i]-'')%mod,now=now*+ch[i]-'';
else{
if(ch[i]<='C'&&ch[i]>='A')res=(res*+)%mod,now=now*+;
if(ch[i]<='D'&&ch[i]>='F')res=(res*+)%mod,now=now*+;
if(ch[i]<='G'&&ch[i]>='I')res=(res*+)%mod,now=now*+;
if(ch[i]<='J'&&ch[i]>='L')res=(res*+)%mod,now=now*+;
if(ch[i]<='M'&&ch[i]>='O')res=(res*+)%mod,now=now*+;
if(ch[i]=='P'||ch[i]=='R'||ch[i]=='S')res=(res*+)%mod,now=now*+;
if(ch[i]<='T'&&ch[i]>='V')res=(res*+)%mod,now=now*+;
if(ch[i]<='W'&&ch[i]>='Y')res=(res*+)%mod,now=now*+;
}
}
if(!t[res])map[res]=now;
t[res]++;
}
void Print(int x){
printf("%d-",map[x]/);
printf("%d",map[x]%);
}
int main(){
freopen("Cola.txt","r",stdin);
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%s",s+);
int len=strlen(s+);
Hash(s,len);
}
for(int i=;i<=;i++){
if(t[i]>){
Print(i);
printf(" %d\n",t[i]);
}
}
return ;
}
10分 hash再次写炸,感觉整个人都不好了
/*
以后不要逞强用hash了!就选stl map<string,int>
*/
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,map[]={,,,,,,,,,,,,,,,,,,,,,,,,};
string s[],c;
int main(){
freopen("Cola.txt","r",stdin);
scanf("%d",&n);
for(int i=;i<=n;i++){
cin>>c;
int len=c.length();
for(int j=;j<c.length();j++){
if(c[j]=='-')continue;
if(c[j]<=''&&c[j]>='')s[i]+=c[j];
else s[i]+=map[c[j]-'A']+'';
}
}
int t=;
bool flag=;
sort(s+,s+n+);
for(int i=;i<=n+;i++){
if(s[i]!=s[i-]){
if(t>)flag=,cout<<s[i-].substr(,)<<'-'<<s[i-].substr(,)<<' '<<t<<endl;
t=;
}
else t++;
}
if(!flag)printf("No duplicates.");
return ;
}
100分 STL_map
洛谷P2037 电话号码的更多相关文章
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP
题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...
- 洛谷P1710 地铁涨价
P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交 讨论 题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...
- 洛谷P1371 NOI元丹
P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交 讨论 题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...
- 洛谷P1538迎春舞会之数字舞蹈
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
- 洛谷八月月赛Round1凄惨记
个人背景: 上午9:30放学,然后因为学校举办读书工程跟同学去书城选书,中午回来开始打比赛,下午又回老家,中间抽出一点时间调代码,回家已经8:50了 也许是7月月赛时“连蒙带骗”AK的太幸运然而因同学 ...
- 洛谷 P1379 八数码难题 Label:判重&&bfs
特别声明:紫书上抄来的代码,详见P198 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给 ...
随机推荐
- linux应用之yum命令的软件源的更换(centos)
[1] 首先备份/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/Cent ...
- uva 111 History Grading(lcs)
题目描述 在信息科学中有一些是关于在某些条件限制下,找出一些计算的最大值. 以历史考试来说好了,学生被要求对一些历史事件根据其发生的年代顺序来排列.所有事件顺序都正确的学生无疑的可以得满分.但是那些没 ...
- Java_数据交换_dom4j_01_解析xml
1.说明 详细原理以后再研究,先将例子存着 2.代码 2.1 xml内容 <?xml version="1.0" encoding="UTF-8"?> ...
- 分享几个高效编写JS 的心得
原则 不要做任何优化除非的确需要优化 任何的性能优化都必须以测量数据为基础,如果你怀疑代码存在性能问题,首先通过测试来验证你的想法.性能优化三问 我还能做哪些工作从而让代码变得更有效率? 流行的J ...
- elasticsearch监控平台cerebro-0.8.3 相关操作
上面这个平台是cerebro-0.8.3 在github上找就有了 #################### GET /hnscan_source_o_comm_drv_bad_bhv_occur/ ...
- bzoj 4771: 七彩树 树链的并+可持久化线段树
题目大意: 给定一颗树,询问树中某个点x的子树中与其距离不超过d的所有点中本质不同的颜色数 强制在线 题解: 一下午终于把这道题叉掉了. 写了三个算法,前两个都是错的,后一个是%的网上大爷们的题解. ...
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
Anthem.NET近日有朋友和我提到Anthem.NET这个同样基于ASP.NET的Ajax框架,今天有机会亲自尝试了一下.初步的感觉似乎和ASP.NET AJAX不相上下,甚至某些地方要强于ASP ...
- Oracle 12c 新特性之 temp undo
Oracle 12c R1 之前,临时表生成的undo记录是存储在undo表空间里的,通用表和持久表的undo记录也是类似的.而在 12c R12 的临时 undo 功能中,临时 undo 记录可以存 ...
- BZOJ1206:[HNOI2005]虚拟内存
我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...
- vi查找替换命令详解
一.查找 查找命令 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配字符串 使用了查找命令之后,使 ...