HDU 4287 (13.08.17)
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?
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.
3 5
46
64448
74
go
in
night
might
gn
2
0
题意与思路:
输入N个按键序列, 再输入M个单词, 要求我们对M个单词进行检索, 求出其按键序列
然后统计, N个按键序列每个分别出现了几次
错误点: 由于不注意严谨, 以为少写一个break没事, 导致超时~
我有两份代码, 一份是错误的, 还没找出错误来, 一份已AC;
AC代码:
#include<stdio.h>
#include<string.h> int t[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}; int T, N, M; int ans[5555];
char num[5555][10];
char word[5555][10]; void getans(char *p) {
int i, len;
int pos = 0;
char t_num[10];
len = strlen(p);
for(i = 0; i < len; i++)
t_num[pos++] = t[p[i]-'a'] + '0';
t_num[pos] = '\0';
for(i = 0; i < N; i++)
if(strcmp(t_num, num[i]) == 0) {
ans[i]++;
break;
}
} int main() {
scanf("%d", &T);
while(T--) {
int i;
scanf("%d %d", &N, &M); getchar(); memset(ans, 0, sizeof(ans));
for(i = 0; i < N; i++)
gets(num[i]);
for(i = 0; i < M; i++)
gets(word[i]); for(i = 0; i < M; i++)
getans(word[i]); for(i = 0; i < N; i++)
printf("%d\n", ans[i]);
}
return 0;
}
wrong代码:
#include<stdio.h>
#include<string.h> int T, N, M; char num[5555][10];
char word[5555][10];
int ans[5555]; char t[10][10]; void getans(char *p) {
int i, j, k, pos = 0;
char t_num[10];
int len1, len2;
len1 = strlen(p);
for(i = 0; i < len1; i++) {
for(j = 2; j < 10; j++) {
len2 = strlen(t[j]);
for(k = 0; k < len2; k++) {
if(t[j][k] == p[i])
t_num[pos++] = j;
}
}
} t_num[pos] = '\0';
for(i = 0; i < N; i++) {
if(strcmp(t_num, num[i]) == 0)
ans[i]++;
}
} int main() {
scanf("%d", &T); while(T--) {
int i;
scanf("%d%d", &N, &M); memset(ans, 0, sizeof(ans));
strcpy(t[2], "abc");
strcpy(t[3], "def");
strcpy(t[4], "ghi");
strcpy(t[5], "jkl");
strcpy(t[6], "mno");
strcpy(t[7], "pqrs");
strcpy(t[8], "tuv");
strcpy(t[9], "wxyz"); for(i = 0; i < N; i++)
gets(num[i]);
for(i = 0; i < M; i++)
gets(word[i]); for(i = 0; i < M; i++)
getans(word[i]); for(i = 0; i < N; i++)
printf("%d\n", ans[i]);
}
return 0;
}
HDU 4287 (13.08.17)的更多相关文章
- UVA 536 (13.08.17)
Tree Recovery Little Valentine liked playing with binary trees very much. Her favoritegame was con ...
- UVA 673 (13.08.17)
Parentheses Balance You are given a string consisting of parentheses () and []. Astring of this ty ...
- HDU 4642 (13.08.25)
Fliping game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- HDU 4287 Intelligent IME(字典树数组版)
Intelligent IME Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 13.1.17 CREATE TABLE Syntax
13.1.17 CREATE TABLE Syntax 13.1.17.1 CREATE TABLE ... LIKE Syntax 13.1.17.2 CREATE TABLE ... SELECT ...
- Intel Digital Innovation Industry Summit(2018.08.17)
时间:2018.08.17地点:北京金隅喜来登大酒店
- HDU 4287 Intelligent IME hash
Intelligent IME Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?p ...
- hdu 4287
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4287 #include<cstdio> #include<cstring> # ...
- UVA 10194 (13.08.05)
:W Problem A: Football (aka Soccer) The Problem Football the most popular sport in the world (ameri ...
随机推荐
- js+css实现模态层效果
在做web前端的时候,有些时候会涉及到模态层,在此提供一种实现思路.希望对大家实用.先贴效果吧: 模态层效果 以下说说在写模态层的时候的思路:通过可配置的參数width,height,title以及c ...
- C++中的对象数组
类是对象的抽象,我们可以使用一个类来定义很多的对象,然后每个对象都有自己的属性. 当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法. 例如,一个班有50个学生,我们定义了一个学生 ...
- HDU 5274(树链剖分)
树链剖分第一题QAQ,纪念下 #pragma comment(linker, "/STACK:102400000,102400000") #include <iostream ...
- C++11 lambda 表达式
C++11 新增了很多特性,lambda 表达式是其中之一,如果你想了解的 C++11 完整特性,建议去这里,这里,这里,还有这里看看.本文作为 5 月的最后一篇博客,将介绍 C++11 的 lamb ...
- 报错要跟到底就很更快更准确的发现问题所在一直in进去(其实都知道的哈)
问题-查看详细信息-innerexception-innerexception
- C# viewstate
Viewstate 处理不是form中可以传值的标签 进行传值.可以禁用元素的viewstate 也可以禁用页面的Enableviewstate=”false”;(在配置区域写)内网系统,互联网后台可 ...
- C#读取XML配置文件
DataSource.xml文件,要放在bin/debug/目录下: <?xml version="1.0" encoding="utf-8" ?> ...
- xampp集成安装的mysql修改密码(Window)
把mysql安装目录bin文件夹加入环境变量 path:mysqlPath\bin; 或者进入mysql安装目录bin文件夹下,按住shift键盘鼠标右击进入命令行 键入命令 mysqladmin - ...
- hadoop调优之一:概述
hadoop集群性能低下的常见原因 (一)硬件环境 1.CPU/内存不足,或未充分利用 2.网络原因 3.磁盘原因 (二)map任务原因 1.输入文件中小文件过多,导致多次启动和停止JVM进程.可以设 ...
- 在Win8.1(64位)系统上安装Scrapy(python 2.7.7)
为了在win8.1上安装scrapy折腾了好久,最终安装成功,总结步骤如下: 下载安装Visual C++ 2008 redistributables 安装lxml-3.2.4.win-amd64-p ...