HDU2222 Keywords Search

  • 模板题。数组开小了结果会T。。。
  • 代码
     #include <bits/stdc++.h>
    #define nmax 10010 using namespace std;
    char in[nmax],b[];
    int t[*nmax][];
    int f[*nmax],v[nmax*];
    int n,cnt=,ans=; void ins(){
    int idx=,l=strlen(in);
    for (int i=; i<l; i++) {
    int x=in[i]-'a';
    if(!t[idx][x]) t[idx][x]=++cnt;
    idx=t[idx][x];
    }
    v[idx]++;
    } void init(){
    for (int i=; i<=cnt; i++) {
    for (int j=; j<; j++) t[i][j]=;
    f[i]=v[i]=;
    }
    cnt=;
    ans=;
    } void bf(){
    queue <int> q;
    for (int i=; i<; i++) if(t[][i]) q.push(t[][i]);
    while(!q.empty()){
    int u=q.front();
    q.pop();
    for (int i=; i<; i++) {
    if( t[u][i] ) {
    f[t[u][i]]=t[f[u]][i];
    q.push(t[u][i]);
    }else t[u][i]=t[f[u]][i];
    }
    }
    } void solve(){
    int p=,l=strlen(b);
    for (int i=; i<l; i++) {
    int x=b[i]-'a';
    p=t[p][x];
    for (int j=p; j&&~v[j]; j=f[j]) ans+=v[j],v[j]=-;
    }
    } int main(){
    int cas;
    cin>>cas;
    while(cas--){
    init();
    scanf("%d",&n);
    for (int i=; i<n; i++) { scanf("%s",in); ins(); }
    bf();
    scanf("%s",b);
    solve();
    printf("%d\n",ans);
    }
    return ;
    }

    o(* ̄▽ ̄*)ブ

HDU2896 病毒侵袭

最新文章

  1. jQuery LigerUI V1.2.2 (包括API和全部源码) 发布
  2. 简单jquery实现select三级联动
  3. 第27章 结构型模式大PK
  4. SSL、OPENSSL、SSH、OPENSSH
  5. 结合Apache和Tomcat实现集群和负载均衡 JK 方式
  6. Null modem接线
  7. 【第二课】深入理解Handler
  8. poj3667【线段树】/【类似权值线段树写法】
  9. poj2762 强连通+拓扑序
  10. 感谢大家的支持,发布一个JWFD的补丁文件
  11. C语言第四节数据类型、常量、变量
  12. java编程中容易犯2的细节汇总
  13. Sqlite学习笔记(四)&amp;&amp;SQLite-WAL原理(转)
  14. 项目管理实践 -- 健身小管家(Fitness housekeeper)的管理(2)
  15. JSON反序列化实体类
  16. process想停就停,真爽
  17. fedora20 安装搜狗输入法及各种问题的解决
  18. day20&lt;IO流&gt;
  19. JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)
  20. JS响应数据

热门文章

  1. Win10好用的快捷键
  2. [IOI2018] werewolf 狼人 [kruskal重构树+主席树]
  3. cf938D
  4. 蓝眼睛与红眼睛(The blue-eyed islanders puzzle)
  5. .net core 3.0 swagger
  6. 使用scrapy框架爬取图片网全站图片(二十多万张),并打包成exe可执行文件
  7. vue ----element-ui 文件上传upload 组件 实现 及其后台
  8. EPEL添加与删除
  9. docker - 如何清理硬盘中无关占用
  10. 开始Python之旅