//暴力,从每一行的开始处开始寻找要查询的字符
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; char str[]; int main(){
while(gets(str)){
for(int i=; str[i]; ++i)
if(str[i]=='A'){
if(strstr(str+i, "Apple") == str+i)
printf("MAI MAI MAI!\n");
}
else if(str[i]=='i'){
if(strstr(str+i, "iPhone") == str+i || strstr(str+i, "iPod") == str+i || strstr(str+i, "iPad") == str+i)
printf("MAI MAI MAI!\n");
}
else if(str[i]=='S')
if(strstr(str+i, "Sony") == str+i)
printf("SONY DAFA IS GOOD!\n");
}
return ;
}
 //将要匹配的字符串(也就是题目中查询文本中出现的5个单词)建立trie树,然后生成AC_自动机.....
#include<iostream>
#include<cstring>
#include<queue>
#include<cstdio>
#include<algorithm>
using namespace std; int trie[][];
int vis[], fail[];//vis标记的是单词的末尾字符所在的节点
char str[][] = {"Apple", "iPhone", "iPod", "iPad", "Sony"};
int cnt;
void buildT(){
for(int i=; i<; ++i){
int u=;
for(int j=; str[i][j]; ++j){
if(trie[u][str[i][j]] == )
trie[u][str[i][j]] = ++cnt;
u=trie[u][str[i][j]];
}
vis[u]=;
}
} void getFail(){
queue<int>q;
for(int i=; i<; ++i)
if(trie[][i]) q.push(trie[][i]);
while(!q.empty()){
int u = q.front();
q.pop();
int v;
for(int i=; i<; ++i)
if(v = trie[u][i]){
fail[v] = trie[fail[u]][i];
q.push(v);
}
else
trie[u][i] = trie[fail[u]][i];
}
} void getText(char *ch){
int u=;
for(int i=; ch[i]; ++i){
int v = trie[u][ch[i]];
u=v;
while(v){
if(vis[v] && (ch[i]=='d' || ch[i]=='e'))
printf("MAI MAI MAI!\n");
else if(vis[v] && ch[i]=='y')
printf("SONY DAFA IS GOOD!\n");
v = fail[v];
}
}
} char text[]; int main(){
buildT();
getFail();
while(gets(text)){
getText(text);
}
return ;
}

2014 网选 5007 Post Robot(暴力或者AC_自动机(有点小题大作了))的更多相关文章

  1. 2014 网选 上海赛区 hdu 5047 Sawtooth

    题意:求n个'M'型的折线将一个平面分成的最多的面数! 思路:我们都知道n条直线将一个平面分成的最多平面数是 An = An-1 + n+1 也就是f(n) = (n*n + n +2)/2 对于一个 ...

  2. 2014 网选 5024 Wang Xifeng's Little Plot

    题意:从任意一个任意一个可走的点开始找一个最长的路,这条路如果有转弯的话, 那么必须是 90度,或者没有转弯! 思路: 首先用dfs将所有可走点开始的 8 个方向上的线段的最长长度求出来 ! step ...

  3. 2014 网选 广州赛区 hdu 5025 Saving Tang Monk(bfs+四维数组记录状态)

    /* 这是我做过的一道新类型的搜索题!从来没想过用四维数组记录状态! 以前做过的都是用二维的!自己的四维还是太狭隘了..... 题意:悟空救师傅 ! 在救师父之前要先把所有的钥匙找到! 每种钥匙有 k ...

  4. 2014 网选 广州赛区 hdu 5023 A Corrupt Mayor's Performance Art

    #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #d ...

  5. 2014 网选 5011 Game(Nim游戏,数学题)

    /* 题意:Nim游戏! 思路:通过异或,判断将n个数表示成二进制的形式之后,是否对应位的数字1 的个数是偶数! */ #include<iostream> using namespace ...

  6. 2014 网选 5012 Dice(bfs模板)

    /* 题意:就是给定两个筛子,每个筛子上6个面,每个面的数字属于[1,6], 且互不相同! 问a筛子最少经过按照题目规定的要求转动,达到和b筛子上下左右前后的数字相同! 思路:很直白的bfs,将每一种 ...

  7. 2014 网选 5014 Number Sequence(异或)

    /* 题意:a, b两个序列,规定由[0, n]区间的数! 求 a[i] ^ b[i] 的和最大! 思路:如果数字 n的二进制有x位, 那么一定存在一个数字m,使得n^m的所有二进制位 都是1,也就是 ...

  8. BUPT复试专题—网络传输(2014网研)

    题目描述 网络的高效互联与智能传输是提升海量用户服务请求映射效率的重要措施.在这个任务中,你需耍在最小的传输时间内,将数据源传输到指定的网络节点中.我们给定的网络一共包含N个节点,其中节点1为数据源. ...

  9. BUPT复试专题—进程管理(2014网研)

    题目描述 在操作系统中,进程管理是非常重要的工作.每个进程都有唯一的进程标识PID.每个进程都可以启动子进程,此时我们称该它本身是其子进程的父进程.除PID为0的进程之外,每个进程冇且只冇一个父进程. ...

随机推荐

  1. 不能返回函数内部new分配的内存的引用

    以前在开发电子秤接口动态库时,曾尝试在用于获取重量的函数外面定义一个字符串指针,然后作为参数传入函数内部,然后在函数内部new,用来输出函数执行过程中发生的错误.但是总是出错,没有找到原因,后来无意中 ...

  2. python读文件

    第一种方法 #encoding=utf-8 file = open("./man_data.txt","r") try: print file.read() f ...

  3. [原创]Java性能优化权威指南读书思维导图

    [原创]Java性能优化权威指南读书思维导图 书名:Java性能优化权威指南 原书名:Java performance 作者: (美)Charlie Hunt    Binu John 译者: 柳飞 ...

  4. c# 压缩文件

    递归实现压缩文件夹和子文件夹. using System; using System.Collections.Generic; using System.Linq; using System.Text ...

  5. raid性能对比

    1,raid0的特性:采用剥离,数据将在几个磁盘上进行分割.数据被分成很多数据块,每一数据块会被写入不同的磁盘.从而, 每一磁盘的工作负荷都得到了降低,这有助于加速数据传输.RAID-0可让磁盘更好地 ...

  6. Win7任务栏图标大小调整为等宽

    打开注册表,找到HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics,新建DWORD,输入MinWidth,大图标设为56,小图标设定为36: 参 ...

  7. Mysql编码, Mysql编码流程, Mysql编码顺序, Mysql编码原理, Mysql编码修改依据

    编码查看方式以及解释说明: 需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -u root –p,之后两次输入root用户的密码),查看数据库的 ...

  8. 使用nginx-http-concat优化网站响应

    前言: 我们在访问淘宝的时候,会看到代码中的js和css文件是通过一次请求或得的,我们知道浏览器一次请求只能并发访问数个资源,这样的处理错输在网络传输层面可以大大节省时间,这里使用的技术就是把css. ...

  9. [转] The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing

    https://www.smartftp.com/support/kb/the-program-cant-start-because-api-ms-win-crt-runtime-l1-1-0dll- ...

  10. Apache shiro

    Shiro 是一个 Apache Incubator 项目,旨在简化身份验证和授权. 学习博客:http://jinnianshilongnian.iteye.com/blog/2018398