• (。・`ω´・)智能手机


    (。・`ω´・)智能手机

    TimeLimit: 2000/1000 MS (Java/Others)  MenoryLimit: 32768/32768 K (Java/Others)
    64-bit integer IO format:%I64d
     
    Problem Description
    在大家都有手机的今天。我们必须熟悉手机上的智能英文输入法。具体地讲,数字按钮可对应于英文字母分别如下所示: 
      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 
    当我们想输入字符串“ming”,我们需要按下数字键 9, 4, 6, 4,然后输入法会手机字典中选择,所有符合拼音的单词。 
    现在,问题来了,给你N组数字键的按键顺序,以及M组字符串,根据每一组的数字键的按键顺序,可以拼凑出多少个单词、
    Input
      第一行输入T,表示有T组测试案例,每组测试案例按照下述操作进行: 
      第一行输入两个整数r N (1 <= N <= 5000),和M (1 <= M <= 5000),表示有N组数字键的按键顺序和M组字符串。 
      接下来有N行,每一行输入不超过6位数的数字,表示一组按键顺序。 
      再下来有M行,每一行输入一串不超过6个字符的字符串。  
    Output
       每组测试案例,根据所给的按键顺序,在M个字符串中,统计能够形成多少个匹配的字符串、 
    SampleInput

    1
    3 4
    46
    64448
    74
    ho
    oight
    mihgt
    go
    SampleOutput
    2
    2
    0

    代码(映射一下就好了,简单哈希):
     1 #include<stdio.h>
     2 #include<algorithm>
     3 #include<string.h>
     4 using namespace std;
     5 #define Max 1008611
     6 int Sign[Max];
     7 int To[26]={2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9};
     8 int Deal(char str[])
     9 {
    10     int i,Sum=0,Len=strlen(str);
    11     for(i=0;i<Len;i++)
    12     {
    13         Sum=Sum*10+To[str[i]-'a'];
    14     }
    15     return Sum;
    16 }
    17 int main()
    18 {
    19     int T,N,M,i,j;
    20     int Num[5117];
    21     char Str[5117];
    22     scanf("%d",&T);
    23     while(T--)
    24     {
    25         memset(Sign,0,sizeof(Sign));
    26         scanf("%d%d",&N,&M);
    27         for(i=0;i<N;i++)
    28         {
    29             scanf("%d",&Num[i]);
    30         }
    31         for(i=0;i<M;i++)
    32         {
    33             scanf(" %s",Str);
    34             Sign[Deal(Str)]++;
    35         }
    36         for(i=0;i<N;i++)
    37         {
    38             printf("%d
    ",Sign[Num[i]]);
    39         }
    40     }
    41     return 0;
    42 }
    View Code
    转载请备注:
    **************************************
    * 作者: Wurq
    * 博客: https://www.cnblogs.com/Wurq/
    * Gitee: https://gitee.com/wurq
    **************************************
  • 相关阅读:
    长进程后用电脑发送提示消息到手机微信
    python-openCV 绘制图形
    python调用C++实例:用C++对numpy执行BFS(广度优先搜索)
    numpy中多维数组的绝对索引
    python调用C++ DLL 传参技巧
    React 中常见的动画实现方式
    H5和android原生APP之间的区别
    【转发】三层架构、MVC以及与SSM架构的对应关系(通俗易懂)
    VS code 设置中文后没有反应仍然是英文
    从数据库中获取信息显示在select下拉框中并实现联动
  • 原文地址:https://www.cnblogs.com/Wurq/p/4693303.html
Copyright © 2020-2023  润新知