http://hihocoder.com/problemset/problem/1441

题目:对SAM的介绍,模拟暴力实现SAM的一些功能。

思路:找出S字符串的所有的子串,

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <string>
 4 #include <iostream>
 5 #include <map>
 6 using namespace std;
 7 map<string,long long >dist;
 8 map<long long ,string>Long,Short;
 9
10 /*
11 substr(s_pos,s_size);
12 */
13 int main()
14 {
15     string s;
16     int t;
17     cin>>s>>t;
18     for(int i = 0;i<s.length();i++)
19         for(int j = 1;j<=s.length()-i;j++)
20         {
21             string x = s.substr(i,j);
22             long long tmp = 0;                   //tmp代表x与哪几个字符串相同。
23             for(int k = 0;k<=s.length()-j;k++)
24             {
25                 if(x==s.substr(k,j))
26                     tmp |= (1ll<<(k+j));    //k+j代表有相同的后缀,与运算就可以把这个值给记录下来
27             }
28             if(Short[tmp].length()==0||(int)Short[tmp].length()>j)
29                 Short[tmp] = x;
30             if((int)Long[tmp].length()<j)
31                 Long[tmp] = x;
32             dist[x] = tmp;
33         }
34     string x;
35     while(t--)
36     {
37         cin>>x;
38         long long tmp = dist[x];
39         cout<<Short[tmp]<<" "<<Long[tmp];
40         for(int i = 0;i<50;i++)
41             if((1ll<<i)&tmp)
42                 cout<<" "<<i;
43         cout<<endl;
44     }
45     return 0;
46 }

有子串,然后

转载于:https://www.cnblogs.com/Tree-dream/p/6868161.html

hihocoder 1441相关推荐

  1. hihoCoder #1441 : 后缀自动机一·基本概念

    题目链接 输入 第一行包含一个字符串S,S长度不超过50. 第二行包含一个整数N,表示询问的数目.(1 <= N <= 10) 以下N行每行包括一个S的子串s,s不为空串. 输出 对于每一 ...

  2. HihoCoder - 1441 后缀自动机一·基本概念(模拟,后缀自动机入门好题)

    题目链接:点击查看 题目大意:给出后缀自动机的定义以及各部分的参数,要求模拟后缀自动机的各个部分 题目分析:直接按照后缀自动机的定义模拟就好了,因为字符串的长度只有50,所以可以用n^3的算法暴力,还 ...

  3. HihoCoder - 1441 后缀自动机一·基本概念(模拟)

    描述 小Hi:今天我们来学习一个强大的字符串处理工具:后缀自动机(Suffix Automaton,简称SAM).对于一个字符串S,它对应的后缀自动机是一个最小的确定有限状态自动机(DFA),接受且只 ...

  4. hihocoder 后缀自动机专题

    一.后缀自动机基本概念的理解 1.首先后缀自动机的状态是由子串的endpos来决定的 子串的endpos是指一个子串可以在原字符串的哪些位置进行匹配, endpos构成的不同集合划分成不同的状态 关于 ...

  5. es6 去掉空格_微信小程序自动去除input空格的方法

    当用户输入账号或者密码的时候,可能会有输入空格的情况,但是实际需要是不能够有空格的,所以我们要做一个去除空格,并且适应所有input的name参数的方法,下面请看源码: wxml: js: verif ...

  6. Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言)

    Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言) ** 题目: ** 给你一个目标数组 target 和一个整数 n.每次迭代,需要从 list = {1,2 ...

  7. hihoCoder 网络流四·最小路径覆盖

    题面带解释 hihoCoder感觉很好. 网络流的精华就是建图 #include<cstdio> #include<iostream> #include<algorith ...

  8. hihoCoder #1142 : 三分求极值

    #1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一 ...

  9. hihoCoder 1051 补提交卡(贪心,枚举)

    #1051 : 补提交卡 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序.100天过 ...

最新文章

  1. java循环练习:水仙花数
  2. Python中super()和__init__()方法
  3. keras从入门到放弃(十三)卷积神经网络处理手写数字识别
  4. 好多人都说存储过程很难?认真看这篇文章就够了
  5. dbms标识符无效_DBMS中的嵌套查询,相关的嵌套查询和集合比较运算符
  6. 粘贴复制Android复制和粘贴的实现
  7. mysql更新数据库中int 1_Mysql数据库int(1)和tinyint(1)的区别扩展阅读
  8. android播放器实现自动播放,Android实现自动播放图片功能
  9. 父子域+主辅域控的搭建
  10. 更新CocoaPods1.1.0碰到的问题及知识点
  11. 典型关联分析(CCA)原理总结
  12. Java 一步一步教你在控制台打印出菱形
  13. 数显之家快讯:【SHIO世硕心语】2021,写给自己的几段宽心话!
  14. html显示一条直线,如何在HTML中画一条线
  15. 【渝粤题库】陕西师范大学209008 教师伦理学 作业
  16. 音调、响度 和 周期(频率) 占空比 的关系
  17. FreeMarker导出excel打不开,特殊字符问题
  18. 快门背后的机器学习:实时 HDR+ 和双重曝光控制
  19. 认识USB-TYPEA/B/C/micro/mini
  20. 干货!#黑客大会PPT资源#,快来领取吧!

热门文章

  1. html网页设计课程心得,网页制作学习心得5篇.doc
  2. U-boot最新版本下载
  3. UVM糖果爱好者教程 - 1.概述
  4. 配置本地ntp服务器及ntp客户端
  5. matlab中gad,听见朝鸣丨对话GAD:文化土壤中生长的建筑美学
  6. 0x80070422是什么错误(hresult 0x80070422错误原因)
  7. Win10 无法安装 net3.5, 错误代码:0x80070422
  8. 有关chrome dev的使用
  9. dev-CPP快捷键
  10. align-items容器属性