转载请注明出处:http://blog.csdn.net/u012860063

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4287

Intelligent IME

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 2091    Accepted Submission(s): 1031

Problem Description
  We all use cell phone today. And we must be familiar with the intelligent English input method on the cell phone. To be specific, the number buttons may correspond to some English letters respectively, as shown below:

  2 : a, b, c    3 : d, e, f    4 : g, h, i    5 : j, k, l    6 : m, n, o    

  7 : p, q, r, s  8 : t, u, v    9 : w, x, y, z

  When we want to input the word “wing”, we press the button 9, 4, 6, 4, then the input method will choose from an embedded dictionary, all words matching the input number sequence, such as “wing”, “whoi”, “zhog”. Here comes our question, given a dictionary,
how many words in it match some input number sequences?

 
Input
  First is an integer T, indicating the number of test cases. Then T block follows, each of which is formatted like this:

  Two integer N (1 <= N <= 5000), M (1 <= M <= 5000), indicating the number of input number sequences and the number of words in the dictionary, respectively. Then comes N lines, each line contains a number sequence, consisting of no more than 6 digits. Then
comes M lines, each line contains a letter string, consisting of no more than 6 lower letters. It is guaranteed that there are neither duplicated number sequences nor duplicated words.
 
Output
  For each input block, output N integers, indicating how many words in the dictionary match the corresponding number sequence, each integer per line.
 
Sample Input
1
3 5
46
64448
74
go
in
night
might
gn
 
Sample Output
3
2
0
 
Source
 
Recommend
liuyiding   |   We have carefully selected several similar problems for you:  

pid=4267" style="color:rgb(26,92,200); text-decoration:none">4267 4276 4268 4269 4270 

 

题目大意:手机键盘中与数字2相相应的字母有a,b,c;3相相应的字母有d,e,f。

给出一些数字串如34,和一些小写字母串。求小写字母相应的数字串出现的次数。

字符串abc相应的数字串是111。dh相应的数字串是34。则小写字符串中111出现一次,34出现一次。

代码例如以下:

#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <cstdlib>
#include <climits>
#include <ctype.h>
#include <queue>
#include <stack>
#include <vector>
#include <deque>
#include <set>
#include <map>
#include <iostream>
#include <algorithm>
using namespace std;
#define PI acos(-1.0)
#define INF 0xffffff
map<int,int>mm;
int cnt[999999];
int main()
{ mm['a']=mm['b']=mm['c']=2;
mm['d']=mm['e']=mm['f']=3;
mm['g']=mm['h']=mm['i']=4;
mm['j']=mm['k']=mm['l']=5;
mm['m']=mm['n']=mm['o']=6;
mm['p']=mm['q']=mm['r']=mm['s']=7;
mm['t']=mm['u']=mm['v']=8;
mm['w']=mm['x']=mm['y']=mm['z']=9;
int t,N,M,sum;
int i,j,k;
int a[5047],b[5047];
char s[47];
while(~scanf("%d",&t))
{
while(t--)
{
scanf("%d%d",&N,&M);
memset(cnt,0,sizeof(cnt));
for(i = 0 ; i < N ; i++ )
{
scanf("%d",&a[i]);
// printf("%d\n",a[i]);
}
for(i = 0 ; i < M ;i++)
{
scanf("%s",s);
int len = strlen(s);
sum = 0;
for(j = 0 ; j < len ; j++)
{
sum = sum*10+mm[s[j]];
}
cnt[sum]++;
}
int k = 0;
for(i = 0 ; i < N ; i++)
{
printf("%d\n",cnt[a[i]]);
} }
}
return 0; }

HDU 4287 Intelligent IME(map运用)的更多相关文章

  1. HDU 4287 Intelligent IME hash

    Intelligent IME Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?p ...

  2. HDU 4287 Intelligent IME(字典树数组版)

    Intelligent IME Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  3. HDU 4287 Intelligent IME

    Intelligent IME Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. ACM学习历程—HDU 4287 Intelligent IME(字典树 || map)

    Description We all use cell phone today. And we must be familiar with the intelligent English input ...

  5. HDU 4287 Intelligent IME(string,map,stl,make_pair)

    题目 转载来的,有些stl和string的函数蛮好的: //numx[i]=string(sx); //把char[]类型转换成string类型 // mat.insert(make_pair(num ...

  6. HDU 4287 Intelligent IME(字典树)

    在我没用hash之前,一直TLE,字符串处理时间过长,用了hash之后一直CE,(请看下图)我自从经历我的字典树G++MLE,C++AC以后,一直天真的用C++,后来的CE就是因为这个,G++才支持这 ...

  7. Intelligent IME HDU - 4287 字典树

    题意: 给你m个字符串,每一个字符对应一个数字,如下: 2 : a, b, c    3 : d, e, f    4 : g, h, i    5 : j, k, l    6 : m, n, o ...

  8. hdu Intelligent IME

    算法:字典树 题意:手机9键拼音:2:abc  3:def 4:ghi 5:jkl 6:mno 7:pqrs 8:tuv 9:wxyz: 第一行读入一个T,代表测试组数: 之后输入两个整数n和m, 有 ...

  9. hdu 4287

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4287 #include<cstdio> #include<cstring> # ...

随机推荐

  1. axis2

    下载axis2-1.5.4-bin.zip文件并解压. 设置axis2的环境变量,如下图所示: 利用axis2中的wsdl2java.bat生成客户端程序. 先启动Tomcat7并在IE里运行http ...

  2. centos6.5 安装stardict 出现问题 [Errno 256] No more mirrors to try

    1. 下载startdict #wget http://downloads.naulinux.ru/pub/NauLinux/6x/i386/sites/School/RPMS/stardict-3. ...

  3. php中parse_url函数的源码及分析

    前言 看师傅们的文章时发现,parse_url出现的次数较多,单纯parse_url解析漏洞的考题也有很多,在此研究一下源码(太菜了看不懂,待日后再补充Orz) 源码 PHPAPI php_url * ...

  4. tomcat的环境配置

    针对java8 选择tomcat进行配置 Tomcat 环境变量配置: 下载:http://tomcat.apache.org/download-80.cgi 解压后直接copy到C盘,这是免安装版本 ...

  5. 洛谷 P1012 拼数 [字符串]

    题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4 ...

  6. Problem B: 英雄无敌3(2)【模拟,日期转换】

    Problem B: 英雄无敌3(2) Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 295  Solved: 52[Submit][Status][W ...

  7. hihocoder Popular Products(STL)

    Popular Products 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Given N lists of customer purchase, your tas ...

  8. [CTSC2017]最长上升自序列(伪题解)(Dilworth's theorem+网络流)

    部分分做法很多,但每想出来一个也就多5-10分.正解还不会,下面是各种部分分做法: Subtask 1:k=1 LCS长度最长为1,也就是说不存在j>i和a[j]>a[i]同时成立.显然就 ...

  9. CodeChef - UASEQ Chef and sequence

    Read problems statements in Mandarin Chinese and Russian. You are given an array that consists of n ...

  10. 【动态规划】【记忆化搜索】【dfs】bzoj2748 [HAOI2012]音量调节

    f[i][j]表示第i首歌音量为j是否可能.若是将状态之间建边,那么答案就是max(j){f[i][j]==true&&0<=j<=limit}.于是就是图中dfs一遍判断 ...