码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 1251统计难题

时间:2016-05-04 22:58:42      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

D - 统计难题
Time Limit:2000MS     Memory Limit:65535KB     64bit IO Format:%I64d & %I64u

Description

Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀). 
 

Input

输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串. 

注意:本题只有一组测试数据,处理到文件结束. 
 

Output

对于每个提问,给出以该字符串为前缀的单词的数量. 
 

Sample Input

banana band bee absolute acm ba b band abc
 

Sample Output

2 3 1 0
 代码
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<vector>
 5 using namespace std;
 6 vector<string>vec[26];
 7 int cnt,flag=0;int len[26];
 8 string str;
 9 int main()
10 {
11     while(getline(cin,str)){
12         if(str==""){
13             flag=1;
14             for(int i=0;i<26;i++)len[i]=vec[i].size();
15             continue;
16         }
17         if(!flag)  vec[str[0]-a].push_back(str);
18         else if(flag){
19             cnt=0;
20             int tmp=str[0]-a;
21             for(int i=0;i<len[tmp];i++){
22                 int len2=str.length();int j;
23                 for(j=1;j<len2;j++)
24                   if(str[j]!=vec[tmp][i][j])break;
25                   if(j==len2) cnt++;
26             }
27             printf("%d\n",cnt);  
28         }
29     }
30     return 0;
31 }

 

HDU 1251统计难题

标签:

原文地址:http://www.cnblogs.com/shenben/p/5459836.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!