SWUN 1308 - 野蛮的城管
来源:互联网 发布:mysql怎样创建数据库 编辑:程序博客网 时间:2024/05/16 19:26
野蛮的城管
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 181920 KByte
总提交 : 21 测试通过 : 4
总提交 : 21 测试通过 : 4
描述
在传说中的粉刷街上,墙上充斥着各种各样的彩色词汇。
但在这条街上,新任城管chc突然野蛮的认定了某些词汇是不应该存在的,于是要求RSS将那些词汇统计数量并上报。
当然chc的风骚你们是不懂的,他要求RSS只要看到任何一个单词中包含该词汇就必须统计上,比如babs中就会被认定为含有abs这个单词。
现在邪恶的CHC想知道 RSS统计某个词汇的数量。
被痛苦摧残的RSS请求你的帮助。
输入
第一行是个数字N,代表这条街上有N个词汇。
接下来N行,每行有一个字符串。
接下来一行是一个整数M,表示有M次统计。
然后是M行字符串,代表需要被统计的单词。
(1<=N<=10000,1<=M<=100000,字符串长度不超过20,但大小写敏感)
输出
对应每次统计,输出一次城管们的统计数字。
样例输入
4
ad
ac
ak
af
2
a
d
样例输出
4
1
题目来源
HLY
怪叔叔改编的题~ 嘿嘿
又是一道字典树水题~~
题目地址: http://218.194.91.48/acmhome/problemdetail.do?&method=showdetail&id=1308
只需在建立字典树的时候,每一次到达节点,使节点计数器num++
但这样还是会错哟~~ 因为它问的是不同单词的个数,而同一个单词可能包含有某 子串 很多遍~~
因此,需要特判一下,建树时,每个num++的节点,需要判断是否同一个单词,如果是,则不重复执行num++
具体看代码~~
#include<iostream>#include<cstdio>using namespace std;char str[30];int s[30];struct Point{int num,n;Point *next[52];};Point *root;void init_(Point *x){x->num=0;x->n=-1;for(int i=0;i<52;i++) x->next[i]=0;}void deal(){for(int i=0;str[i];i++)if(str[i]>='a') s[i]=str[i]-'a';else s[i]=str[i]-39;}void add(int n){Point *p,*now;int i,j;deal();for(i=0;str[i];i++){now=root;for(j=i;str[j];j++){if(!now->next[s[j]]){p=new Point;init_(p);now->next[s[j]]=p;}now=now->next[s[j]];if(now->n!=n){now->num++;now->n=n;}}}}int qry(){Point *p,*now=root;int i;deal();for(i=0;str[i];i++){if(!now->next[s[i]]) break;now=now->next[s[i]];}if(!str[i]) return now->num;else return 0;}int main(){int n;while(~scanf("%d",&n)){root=new Point;init_(root);while(n--){scanf("%s",str);add(n);}scanf("%d",&n);while(n--){scanf("%s",str);printf("%d\n",qry());}}return 0;}
- SWUN 1308 - 野蛮的城管
- SWUN 1425 - 疯狂的马儿
- 《我的野蛮女友》
- 我的野蛮女友
- 我的野蛮成长
- 我的野蛮女友
- 《我的野蛮女友》
- 有思想的《野蛮生长》
- 转:我的野蛮成长
- 野蛮模式的相关种种:
- 2013:“野蛮”的智能硬件
- 一个野蛮生长的程序员
- SWUN 1440 - 你的工资是多少
- 城管--与青春有关的日子
- 让人笑不出来的城管小贩“军备竞赛”
- 怕城管的小贩不是好小贩
- 应该给现在城管看到的一封信----(对‘延安城管’的观后感)
- 混沌的世界 野蛮的斗争
- PHP-Collection类
- Android Map Api 使用和开发(2) 定位我的位置、地图弹出泡泡、通过经纬度获取地址
- VC6.0与mysql交互的小例子(非引用MFC库)
- Office 2013 Preview初体验
- #ifndef_百度百科
- SWUN 1308 - 野蛮的城管
- hdu 2189
- STM32F103的SysTick使用方法
- 认识winodw注册表
- Silverlight的应用
- 40个免费新鲜的jQuery插件和教程
- MemCache详解
- 究竟什么是开发人员眼中最好的代码编辑器?
- 数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示