首页 > TAG信息列表 > Sam

SAM代补题

Hacker 对模式串建立 SAM ,将匹配串的字符一个个走下去,没有该字符就向上跳 parent tree 上的父亲继续找,如此得到对于每个前缀 b1,i 的可最长匹配的后缀,加个线段树维护权值前缀和的最小值即可。 #include<bits/stdc++.h> #define IL inline #define LL long long using namespace st

F2F-Discussing transportation

Do you live in tianjing? In the past,what kind of traffic/transportation do you usually choose,when you plan to travel somewhere? 在高峰时段 in peak hour Have you taken several lessons in a row? Have you taken several lessons in today's afternoon? '

CF126B password SAM做法

题意 找出 \(S\) 的最长的子串 \(T\),满足 \(T\) 是 \(S\) 的前缀、后缀,并在中间出现过。不存在则输出 Just a Legend 思路如下: 题目要求目标串是 Border,并且在中间出现过,即要求子串是 Border ,并且出现次数大于等于 3 次。 那么我们记录字符串末尾在 SAM 中的位置 pos,然后跳它到根

后缀自动机(SAM)习记

前言 本文没有构造证明,因为我不会 基础概念看看就好,自娱自乐。 后期重点更新相关题目的简单总结,方便复习 SAM 基础概念 S 的后缀自动机是一种能够识别所有 S 的子串的自动机类型的数据结构(DFA)。 暴力后缀自动机 对于字符串 \(S\),建立插入了 \(|S|\) 个后缀的 Trie 树。这样显然可

Code For 1线段树与区间更新

H - Code For 1 Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Description Jon fought bravely to rescue the wildlings who were attacked by the white-walkers at Hardhome. On his arrival, Sam tells hi

SAM复习

定义 SAM的定义 字符串\(s\)的SAM是一个可接受\(s\)的所有后缀的最小\(DFA\)(确定的有穷自动机),可以参考编译原理的龙书(强烈推荐) SAM是一张有向无环图。节点被称作状态,边被称作状态之间的转移 存在一个初始状态\(t_0\),其他各结点都可以从\(t_0\)出发到达 没有输出\(\epsilon\)

P3346 [ZJOI2015]诸神眷顾的幻想乡

传送门 题目大意 一棵 \(n(1\le n\le10^5)\) 个节点的树,每个树上有一个颜色值 \(c_i(1\le c_i\le10)\) 。求树上本质不同的路径数,两条路径本质不同当且仅当路径上形成的颜色序列本质不同,保证度数为 \(1\) 的节点数量 \(<20\) 。 思路 如果只考虑从上到下的路径,那么把这棵树当成一

广义后缀自动机

广义SAM的定义 广义SAM是针对Trie树(广义字符串)构建的、能接受所有广义后缀(Trie树叶子路径)的最小DFA 同理,我们可以知道广义SAM是针对广义endpos建立的、以广义后缀为终止点的DFA 广义SAM的理论基础 广义endpos 略 线性状态数 略 转移数 这里注意,由于Trie树的后缀是\(O(n^2)\)个,所以

理性理解 SAM の笔记

之前学过 SAM 但是过不久就发现“忘记”了,究其故里就是没有真正理解 SAM 原理。 故特此记录,大部分知识均来源于: 后缀自动机(SAM)学习笔记 - ouuan的博客 后缀自动机 (SAM) - OI Wiki 确定性有限状态自动机(DFA) 为了方便还是需要引入 确定有限状态自动机(DFA),顺便规范符号。 一个 DFA

P6139 【模板】广义后缀自动机(广义 SAM)

题目链接 P6139 【模板】广义后缀自动机(广义 SAM) 【模板】广义后缀自动机(广义 SAM) 题目描述 给定 \(n\) 个由小写字母组成的字符串 \(s_1,s_2\ldots s_n\),求本质不同的子串个数。(不包含空串) 输入格式 第一行一个正整数 \(n\)。 以下 \(n\) 行,每行一个字符串,第 \(i\) 行表示字符串

题解 CF1073G Yet Another LCP Problem

题解 CF1073G Yet Another LCP Problem 题目链接 题意描述 定义\(LCP(S_i,S_j)\)为字符串\(S\)的后缀\(i\)和后缀\(j\)的最长公共前缀长度。 给定一个长为\(n\)的字符串\(S\),\(q\)次询问,每次询问给出两个正整数集合\(A,B\),大小分别为\(k,l\),求\(\sum\limits_{i\in A,j\in B}LCP(S

【瞎口胡】后缀自动机(SAM)

前言 后缀自动机(Suffix Automaton, SAM)是一个能解决许多字符串相关问题的数学模型。 需要注意的是,自动机不是算法,也不是数据结构,而是一种数学模型。实现同一种自动机的方法不同可能会造成时空复杂度不同。 以下问题都可以在线性时间内通过 SAM 解决: 在另一个字符串中搜索一个字

SAM 基础

SAM 的定义 SAM 是一张有向无环图。结点被称作 状态 ,边被称作状态间的转移 图存在一个源点 \(t_0\) ,称作 初始状态,其它各结点均可从 \(t_0\) 出发到达 每个 转移 都标有一些字母。从一个结点出发的所有转移均不同 存在一个或多个 终止状态 。如果我们从初始状态 \(t_0\)

后缀自动机 SAM

struct NODE { int ch[26]; int len,fa; NODE(){memset(ch,0,sizeof(ch));len=0;} }dian[MAXN<<1]; int las=1,tot=1; void add(int c) { int p=las;int np=las=++tot; dian[np].len=dian[p].len+1; for(;p&&!dian[p].ch[c];p=dian[p]

Codeforces 1276F. Asterisk Substrings (3400)

给定一个全由小写字母组成的字符串 \(s\),设 \(t_i\) 表示将 \(s\) 中的第 \(i\) 个字符替换成 \(*\) 后得到的字符串,求字符串集合 \(\{s,t_1,\ldots,t_{|s|}\}\) 的本质不同的子串数量(包含空串)。 \(1\le |s|\le 10^5\)。 首先答案的构成一定是 \(\{\empty,*,s*,*s,s*t\}\) 五种

后缀自动机 (SAM) 学习笔记

定义 后缀自动机(\(\text{Suffix Automaton}\),简称 \(\text{SAM}\))是一种用于字符串处理的有限状态自动机(\(\text{DFA}\)),它根据母串的所有后缀构建,能识别出母串的所有子串,且构造算法复杂度接近线性,实际上是 \(O(n\log |\Sigma|)\),\(|\Sigma|\) 是字符集大小,这里将 \(|\Sigma|\) 看

后缀数组

一些废话 SA 可以做的,SAM 也一定可以做 (所以学什么 SA 啊) 直到我遇到了这个题:P4051 [JSOI2007]字符加密 然后 SAM 就死了,大概 SAM 遇到字符集大的问题确实是束手无策,因为空间和时间上确实会被 SA 碾压 但是我是觉得应该没有出题人无聊到卡这种东西吧 SA 构造 P3809 【模

后缀自动机

(本文不适合初学者) SAM 个人认为 SAM yyds 希望有一天 SAM 能统治字符串界 前置概念 \(\operatorname{endpos}\) 集合表示一个子串在原串中出现的位置集合 所有的子串通过 \(\operatorname{endpos}\) 分成一个个等价类 构造 每个节点代表一个子串集合(或者看成是一种

【比赛游记】FJOI2022 划水记

Day -? 得知 FJOI 王者归来。 Day 0 试机从 15 : 30 至 16 : 30。发现考场键盘是巧克力键盘,鼠标 DPI 目测 800。难受。 写了 LCT,SAM,SA,圆方树。试了几组小样例,还可以。SAM 和 SA 拍上了。NTT 写到一半试机就结束了。 试机结束后和同学们去逛了逛师大附中旁边的烟台山公园。很快就

【英语语法】get的用法

get + noun(名词)= receive(收到) , buy(买),find(找) I got an email from sam this morning.(代指receive) I like your sweater.Where did you get it?(代指buy) It's hard to get a job at the moment.(代指find)

109 后缀自动机(SAM)

视频链接:                         P3804 【模板】后缀自动机 (SAM)。 // Luogu P3804 【模板】后缀自动机 (SAM) #include <iostream> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; const int N=2e6+10; int h[N], e[N],

英语特殊疑问句

概念 特殊疑问句是在英语中以特殊疑问词开头,对句中某一成分提问的句子。根据疑问词分类有疑问代词、疑问副词、疑问形容词: 疑问词 包含 疑问代词 what、who、which 疑问副词 when、where、why、how 疑问形容词 whose 变形 知道特殊疑问句的主语,询问 "他/他们/我可以

「杂谈」感性理解 SAM 结构

基本参考于 EtaoinWu 的博客 因为是感性理解,重要在于对后缀树及后缀自动机结构的透彻理解。 定义:\(Left(x)\),子串 \(x\) 在母串中出现位置左端点的集合;\(Right(x)\),子串 \(x\) 在母串中出现位置右端点的集合。 在后缀 Trie 中:转移边链接的是自己的最长前缀,fail 边链接的是自己的最

Windows影子用户

1.首先需要拥有Administrator权限创建一个用户,并分配管理员权限。 点击查看代码 net user test$ test123 /add net localgroup administrators test$ /add net localgroup users test$ /del 三条指令: 创建隐藏用户test 将test用户添加到Administrators组中 将test用户移出use

Exception in thread "main" java.io.NotSerializableException: com.sam.bigdata.spark.core.te

出现以下错误提示 Exception in thread "main" java.io.NotSerializableException: com.sam.bigdata.spark.core.test.Task at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java