描述

    1    2    3
ABC DEF 4 5 6
GHI JKL MNO 7 8 9
PQRS TUV WXYZ * 0 #

我们知道电话拨号盘上数字会有若干字母对应,例如2对应ABC,7对应PQRS。

这是因为在北美尤其是在美国,一些大公司常常把代表其企业名称、产品名称、行业名称等的特定英文单词或字母组合嵌入其电话号码中。比如,苹果公司在线商店Apple Store的订购电话是:1-800-MY-APPLE (1-800-692-7753)。这种做法的主要目的在于宣传公司标志并且便于受众记忆和使用。显然对于英语国家的人们来说,英文单词要比凌乱的数字更容易识记。

多个字母组合可能会对应同一个号码,从而造成争抢,例如HIHO和IGGO都对应4446。

现在给定N个字母组合以及M个号码,请对每一个号码求出有多少个字母组合对应它。

输入

第一行包含两个整数N和M。

以下N行每行一个字母组合。

再之后M行每行一个数字号码。

对于30%的数据,1 ≤ N, M ≤ 100

对于100%的数据,1 ≤ N, M ≤ 50000, 字母组合和号码的长度都不超过10。只包含大写字母和数字2-9。

输出

输出M行。按照输入的顺序依次输出每一个号码有多少字母组合对应。

样例输入

3 2
HIHO
IGGO
CODER
4446
26337

样例输出

2
1
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;
const int maxn=;
map<string,int>mp;
string name;
long long phone;
int id[]={,,,,,,,,,,,,,,,,,,,,,,,,,};
int main()
{
int n,m,i,j,L;
scanf("%d%d",&n,&m);
for(i=;i<=n;i++) {
cin>>name;
string tmp="";
L=name.length();
for(j=L-;j>=;j--){
tmp=tmp+(char)(id[name[j]-'A']+'');
} mp[tmp]++;
}
for(i=;i<=m;i++){
cin>>phone;
string tmp="";
while(phone){
tmp+=(phone%+'');
phone/=;
}
cout<<mp[tmp]<<endl;
} return ;
}

HihoCoder1641 : 热门号码([Offer收割]编程练习赛37)(模拟)的更多相关文章

  1. [Offer收割]编程练习赛37

    热门号码 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<vector> ...

  2. HihoCoder1644 : 完美命名的烦恼([Offer收割]编程练习赛37)(有向图的一笔画问题||欧拉路)

    描述 程序员常常需要给变量命名.给函数命名.给项目命名.给团队命名…… 好的名字可以大大提高程序员的主观能动性,所以很多程序员在起名时都会陷入纠结和烦恼. 小Hi希望给新的项目起个完美的名字.首先小H ...

  3. HihoCoder1643 : 最少换乘([Offer收割]编程练习赛37)(bfs)

    描述 小Ho居住的城市有N条公交车线路,其中第i条线路上有Ki个车站. 某些线路之间会有公共的车站,小Ho可以在这些车站从一条线路换乘到另一条线路. 现在给定N条公交车线路以及两个车站S和E,你能帮助 ...

  4. HihoCoder1642 : 三角形面积和([Offer收割]编程练习赛37)(求面积)(扫描线||暴力)(占位)

    描述 如下图所示,在X轴上方一共有N个等腰直角三角形.这些三角形的斜边与X轴重合,斜边的对顶点坐标是(Xi, Yi). (11,5) (4,4) /\ /\(7,3) \ / \/\/ \ / /\/ ...

  5. HihoCoder1670 : 比赛日程安排([Offer收割]编程练习赛41)(模拟)

    描述 H国编程联赛中有N只队伍,编号1~N. 他们计划在2018年一共进行M场一(队)对一(队)的比赛. 为了让参赛队员能得到充分的休息,联赛组委会决定:每支队伍连续两场比赛之间至少间隔一天.也就是如 ...

  6. hihocoder [Offer收割]编程练习赛4

    描述 最近天气炎热,小Ho天天宅在家里叫外卖.他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元.并且如果消费总计满X元,还能享受优惠.小Ho是一个不薅羊毛不舒服斯基的人,他希望 ...

  7. hihocoder [Offer收割]编程练习赛61

    [Offer收割]编程练习赛61 A:最小排列 给定一个长度为m的序列b[1..m],再给定一个n,求一个字典序最小的1~n的排列A,使得b是A的子序列. 贪心即可,b是A的子序列,把不在b中的元素, ...

  8. [Offer收割]编程练习赛46

    [Offer收割]编程练习赛46赛后题解 A.AEIOU 分析

  9. [Offer收割]编程练习赛23-freeloop

    A. H国的身份证号码I dfs裸题. 时间复杂度\(O(n^k)\). #include <bits/stdc++.h> #define FOR(i,a,b) for (int i=a; ...

随机推荐

  1. Leetcode Array 1 twoSum

    Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...

  2. Character set &#39;utf8mb4&#39; is not a compiled character set

    近期在一次MySQL数据迁移的过程中遭遇了字符集的问题,提示为"Character set 'utf8mb4' is not a compiled character set".即 ...

  3. Docker入门系列5:常见问题小结

    重启容器 再次运行容器: docker start container_id 然后 docker attach container_id 就可以继续下命令了. [编辑]命名 --name [编辑]端口 ...

  4. Python 之 安装模块的多种方法

    1.自己写的模块,能够直接加入到路径下. 这样就能够直接调用. import sys sys.path.append("/home/username/") 2.单文件模块 直接把文 ...

  5. 【BZOJ2597】[Wc2007]剪刀石头布 最小费用流

    [BZOJ2597][Wc2007]剪刀石头布 Description 在一些一对一游戏的比赛(如下棋.乒乓球和羽毛球的单打)中,我们经常会遇到A胜过B,B胜过C而C又胜过A的有趣情况,不妨形象的称之 ...

  6. restlet验证

    1 restlet有无认证对比 无认证: 客户端发起请求 -----> 服务器路由 -----> 访问服务端资源 有认证: 客户端发起请求 -----> 认证 ----->服务 ...

  7. k-anonymity

    k匿名(k-anonymity)是一种常用的社交网络隐私保护技术,其思想是通过人为构造一定数量与目标节点拓扑结构相同的节点来降低用户被定位的概率 [匿名]英语怎么说_在线翻译_有道词典 http:// ...

  8. Android Development Note-01

    Eclipse快捷键: 导包:ctrl+alt+o 格式化代码:ctrl+alt+f   MVC: M——Model V——View C——Control   android程序界面如何设计.调试 U ...

  9. 数据解析,懒加载,代理ip

    在前面的requests流程中,还缺少了一步重要的流程,就是在持久化存储之前需要进行制定的数据解析.因为在大多数情况下,我们都会使用聚焦爬虫,也就是爬取页面中的指定部分数据值,而不是整个页面的数据. ...

  10. P3968 [TJOI2014]电源插排

    P3968 [TJOI2014]电源插排 线段树维护最长空区间及左端点位置,这个和$nlongn$的动态最大子序和差不多,就不多解释了 $n$较大哈希优化空间 My complete code: #i ...