hihocoder 1441
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相关推荐
- hihoCoder #1441 : 后缀自动机一·基本概念
题目链接 输入 第一行包含一个字符串S,S长度不超过50. 第二行包含一个整数N,表示询问的数目.(1 <= N <= 10) 以下N行每行包括一个S的子串s,s不为空串. 输出 对于每一 ...
- HihoCoder - 1441 后缀自动机一·基本概念(模拟,后缀自动机入门好题)
题目链接:点击查看 题目大意:给出后缀自动机的定义以及各部分的参数,要求模拟后缀自动机的各个部分 题目分析:直接按照后缀自动机的定义模拟就好了,因为字符串的长度只有50,所以可以用n^3的算法暴力,还 ...
- HihoCoder - 1441 后缀自动机一·基本概念(模拟)
描述 小Hi:今天我们来学习一个强大的字符串处理工具:后缀自动机(Suffix Automaton,简称SAM).对于一个字符串S,它对应的后缀自动机是一个最小的确定有限状态自动机(DFA),接受且只 ...
- hihocoder 后缀自动机专题
一.后缀自动机基本概念的理解 1.首先后缀自动机的状态是由子串的endpos来决定的 子串的endpos是指一个子串可以在原字符串的哪些位置进行匹配, endpos构成的不同集合划分成不同的状态 关于 ...
- es6 去掉空格_微信小程序自动去除input空格的方法
当用户输入账号或者密码的时候,可能会有输入空格的情况,但是实际需要是不能够有空格的,所以我们要做一个去除空格,并且适应所有input的name参数的方法,下面请看源码: wxml: js: verif ...
- Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言)
Leetcode刷题 1441题: 用栈操作构建数组(基于python3和c++两种语言) ** 题目: ** 给你一个目标数组 target 和一个整数 n.每次迭代,需要从 list = {1,2 ...
- hihoCoder 网络流四·最小路径覆盖
题面带解释 hihoCoder感觉很好. 网络流的精华就是建图 #include<cstdio> #include<iostream> #include<algorith ...
- hihoCoder #1142 : 三分求极值
#1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一 ...
- hihoCoder 1051 补提交卡(贪心,枚举)
#1051 : 补提交卡 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho给自己定了一个宏伟的目标:连续100天每天坚持在hihoCoder上提交一个程序.100天过 ...
最新文章
- java循环练习:水仙花数
- Python中super()和__init__()方法
- keras从入门到放弃(十三)卷积神经网络处理手写数字识别
- 好多人都说存储过程很难?认真看这篇文章就够了
- dbms标识符无效_DBMS中的嵌套查询,相关的嵌套查询和集合比较运算符
- 粘贴复制Android复制和粘贴的实现
- mysql更新数据库中int 1_Mysql数据库int(1)和tinyint(1)的区别扩展阅读
- android播放器实现自动播放,Android实现自动播放图片功能
- 父子域+主辅域控的搭建
- 更新CocoaPods1.1.0碰到的问题及知识点
- 典型关联分析(CCA)原理总结
- Java 一步一步教你在控制台打印出菱形
- 数显之家快讯:【SHIO世硕心语】2021,写给自己的几段宽心话!
- html显示一条直线,如何在HTML中画一条线
- 【渝粤题库】陕西师范大学209008 教师伦理学 作业
- 音调、响度 和 周期(频率) 占空比 的关系
- FreeMarker导出excel打不开,特殊字符问题
- 快门背后的机器学习:实时 HDR+ 和双重曝光控制
- 认识USB-TYPEA/B/C/micro/mini
- 干货!#黑客大会PPT资源#,快来领取吧!