ICode9

精准搜索请尝试: 精确搜索
  • 其他字符串算法学习笔记(持续更新)2020-09-29 21:31:59

    关于字符串Hash和后缀自动机SAM可以转至我之前的博客,这里不再阐述。 这里主要介绍一些不怎么常用(至少不如SAM和Hash)的算法。 1.SA 模拟退火后缀数组(Suffix Array)是一种很奇妙的算法。主要原因是它可以做到在 \(O(n\log n)\) 时间内完成排序。 关于如何完成这个比较基础,具体可见洛

  • [CF526D] Om Nom and Necklace - 扩展kmp,差分2020-08-28 16:32:12

    Description 给定一个长度为 \(n\) 的字符串 \(S\),求它的所有前缀中,哪些可以被划分为 \(ABAB...ABA\) 的形式,其中 \(A,B\) 是可以为空的串,且一共包含了 \(k\) 组 \(AB\)。 Solution 考虑令 \(S=AB\),枚举 \(S\) 的长度 \(i\),我们只需要检查 \(LCP(ji+1,1) \ge i, j=1..k-1\),如果都

  • LOJ#3326. 「SNOI2020」字符串 后缀树+贪心2020-07-05 09:03:31

    问题可以转化为:$A$ 与 $B$ 所有前缀一一配对,LCP 之和最大是多少.   构建后缀树,然后对于点 $x$,若 LCP 为 $x$ 则贡献就是 $x$ 子树中 $A$ 点和 $B$ 点较小数量.      我们发现如果要求和最大,就贪心匹配.    由于后缀树中点 $x$ 的长度为 mx[x] ~ mx[pre[x]],我们需要分类讨论

  • P2408 不同子串个数(SA-LCP)2020-06-27 13:41:45

    P2408 不同子串个数(SA-LCP) 传送门 经典的SA−LCPSA-LCPSA−LCP题目。 显然所有子串数目为n(n+1)2\dfrac{n(n+1)}{2}2n(n+1)​。 因此我们只需知道重复的子串有多少个。 根据LCPLCPLCP我们知道利用LCPLCPLCP求出的height[i]=LCP(i,i−1),即排名第i名和第i−1名的最长公共前

  • 从0开始的字符串生活(选手命要没了)2020-06-01 10:07:57

    一.模板复习 1.SA 倍增排序,每次排序,以前半个串为第一关键字,后半个串为第二关键字排序,排序可以用基数排序,复杂度O(nlogn) 一些比较适合在SA上做的题目: 1.LCP长度有关 2.一个经典套路:SA上按height启发式合并,例题:1.shopee杯武大校赛2019正赛C题 2.洛谷“小W与数列” 通常用来维护和L

  • 题解-NOI2016 优秀的拆分2020-05-21 15:03:34

    NOI2016 优秀的拆分 \(T\) 组测试数据。求字符串 \(s\) 的所有子串拆成 \(AABB\) 形式的方案总和。 数据范围:\(1\le T\le 10\),\(1\le n\le 3\cdot 10^4\)。 这道题太神了,能一次做出这题的人往往是人形自走题库。真的全是套路! 令 \(n=|s|\),\(f_i\) 表示有几个以 \(s_i\) 结

  • 【BZOJ2119】股市的预测(后缀数组)2020-05-19 12:57:05

    点此看题面 大致题意: 给你一个数列,问你有多少个区间,满足中间有一段长为\(m\)的间隔,且首尾两端走势相同。 前言 被题意杀了。。。研究样例研究了半天。。。 题意转化 考虑走势相同,就是相邻元素两两差值相同。 因此,如果我们存下相邻元素的差值,就变成询问有多少个区间形如\(ABA\)且\(

  • 【poj 2406】Power Strings 后缀数组DC3模板 【连续重复子串】2020-05-12 19:05:50

    Power Strings 题意 给出一个字符串s,求s最多由几个相同的字符串重复而成(最小循环节的重复次数) 思路 之前学习KMP的时候做过。 我的思路是:枚举字符串的长度,对于当前长度k,判断\(lcp(1,k+1)>=k\),\(lcp(k+1,2k+1)>=k\),\(lcp(3k+1,4k+1)>=k\)....是否都成立 但这样复杂度有点高,就找

  • LeetCode LCP 12. 小张刷题计划(二分查找)2020-05-06 12:38:05

    1. 题目 为了提高自己的代码能力,小张制定了 LeetCode 刷题计划,他选中了 LeetCode 题库中的 n 道题,编号从 0 到 n-1,并计划在 m 天内按照题目编号顺序刷完所有的题目(注意,小张不能用多天完成同一题)。 在小张刷题计划中,小张需要用 time[i] 的时间完成编号 i 的题目。 此外,小张还

  • LeetCode LCP 11. 期望个数统计2020-04-27 09:02:32

    1. 题目 某互联网公司一年一度的春招开始了,一共有 n 名面试者入选。 每名面试者都会提交一份简历,公司会根据提供的简历资料产生一个预估的能力值,数值越大代表越有可能通过面试。 小 A 和小 B 负责审核面试者,他们均有所有面试者的简历,并且将各自根据面试者能力值从大到小的顺

  • LeetCode LCP 01. 猜数字 多种语言解法 C/C++/Python/Java2020-04-22 12:01:49

    LeetCode LCP 01. 猜数字 多种语言解法 C/C++/Python/Java   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创为亓官劼,请大家支持原创,部分平台一直在盗取博主的文章!!! 博主目前仅在CSDN中写博客,唯一博

  • 【嘎】数组- LCP 1. 猜数字2020-03-27 10:56:22

    题目:(力扣(LeetCode) https://leetcode-cn.com/problems/guess-numbers) 小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次? 输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选

  • LCP 4. 覆盖2020-02-02 09:55:25

    题目链接   题解: 我们可以对棋盘进行黑白染色,使得任意相邻的两个格子颜色不相同,然后进行二分图最大匹配。  Code: 1 class Solution { 2 public: 3 int N; 4 int M; 5 6 vector<vector<int>> dir{{1,0},{0,1},{-1,0},{0,-1}}; 7 8 int domino(int n

  • 字符串Hash学习笔记2020-01-27 19:57:43

    ------------恢复内容开始------------ 请勿将字符串Hash和哈希表搞混。虽然两者都是哈希算法,但实现原理和应用上有很大区别。 以下默认字符串下标从1开始,用\(s[l,r]\)表示字符串\(s\)的第\(l\)到第\(r\)个字符组成的子串。 概述 字符串Hash常用于各种字符串题目的部分分中。字符

  • [DP][SA][可持久化线段树]黑红兔2020-01-23 11:56:22

    源自 xyz32768 菜鸡的 FJ 省冬令营模拟赛题 原题 CF1063F Statement 给定一个长度为 \(n\) 的字符串 \(s\),仅包含小写英文字母 要从中从左往右选出若干段不相交的子串 使得选出的这些串中,每个串都是上一个串的严格子串 求最多能选出多少段 \(1\le n\le5\times10^5\) Solution

  • [SDOI2017]天才黑客2020-01-12 11:39:14

    一、题目 点此看题 二、解法 真的毒瘤,我 TM 搞了三个小时,调起来太 TM 爽了。 言归正传,这道题很容易想到一个最短路解法,我们把每条边拆成两个点,它们之间的边权值都是原来的边权,然后对于每个点(原图),我们把入点和出点暴力连边,边权为lcplcplcp(字典树上lcalcalca的深度−1-1−1),这

  • 后缀数组专题总结2019-12-25 19:03:45

    曾经一度以为SA是大神知识点来着 后来才发现其实是泽州哥哥讲得太深奥了我等蒟蒻不能参透 理解了之后题还是可以做的 因为大多数都不是在SA上做文章而是与其他知识点结合 (\(\% \% \%\)迪哥讲 \(SA\) 和 \(SAM\) 钛聚啦) 放例题 1.差异  题意描述:求\(\sum\limits_{1\le i<j\le n

  • 【题解】CF 1073 G. Another LCP2019-11-08 16:52:40

    https://codeforces.com/problemset/problem/1073/G 题意:给定一长度为n的字符串s,并有q次询问,每次询问给定两个序列\(\{a_i\}\)(记长度为k)和\(\{b_j\}\)(记长度为l),输出\(\Sigma_{i=1}^{k} \Sigma_{j=1}^{l} LCP(s[a_i,n],s[b_i,n])\)。 数据范围:\(1\leq n,\Sigma k, \Sigma l \leq 2e

  • ubuntu 18.4 配置pptp-linux 连接内网时LCP: timeout sending Config-Requests2019-10-25 09:36:23

    打开pptp端口 sudo ufw allow 1723 打开 /etc/ufw/before.rules 配置允许47 协议转发 增加一条 -A ufw-before-input -p 47 -j ACCEPT 重启ufw sudo service ufw restart 参考:http://blog.chinaunix.net/uid-20147410-id-5765276.html

  • LeetCode LCP 2. 分式化简2019-10-21 20:52:27

    从最后一项依次叠加 1 class Solution(object): 2 def fraction(self, cont): 3 """ 4 :type cont: List[int] 5 :rtype: List[int] 6 """ 7 ans = [1,0] 8 for i in range(len(cont)-1,-1, -1):

  • Codeforces 1091F New Year and the Mallard Expedition SA2019-10-16 14:00:51

    New Year and the Mallard Expedition 把sa求出来之后, 对于每个询问用单调栈处理。 #include<bits/stdc++.h>#define LL long longusing namespace std;const int N = (int)2e5 + 7;const int LOG = 18;namespace SA {int sa[N], rk[N], ht[N], s[N<<1], t[N<<1], p[N], cnt[

  • 最小表示法总结2019-10-05 21:57:05

    问题解决 一般用于解决一类最小表示或最小串的问题。 问题引入 例题:poj1509 求它的循环串中字典序最小的串的开头。 问题解决 暴力 找到所有的串存下来然后排序,复杂度\(\Theta(n^2)\)的。 诡异做法 建个后缀自动机然后遍历最小的字母边即可。 正经一点的 考虑两个指针\(i\),\(j\),

  • LeetCode LCP 3 机器人大冒险2019-10-02 09:53:41

    题目解析: 对于本题主要的核心是对于一个指令字符串如“RURUU”,如果我们假设它的终点坐标为(8,8),其实只要统计指令字符串中的R的个数和U的个数(对于我给出的例子而言,num_R == 2,num_U == 3),显然不管我们是否能到达终点,这条指令至少要走不止一遍才有可能,那么我们只要将它在达到终点前必走

  • 【leetcode】LCP 3. Programmable Robot2019-09-29 09:51:18

    题目如下: 力扣团队买了一个可编程机器人,机器人初始位置在原点(0, 0)。小伙伴事先给机器人输入一串指令command,机器人就会无限循环这条指令的步骤进行移动。指令有两种: U: 向y轴正方向移动一格R: 向x轴正方向移动一格。不幸的是,在 xy 平面上还有一些障碍物,他们的坐标用obstacles表

  • 洛谷$P5329\ [SNOI2019]$字符串 字符串2019-09-28 14:50:25

    正解:字符串 解题报告: 传送门$QwQ$ 有两个很妙的方法,分别港下$QwQ$ 首先为了表示方便,这里和题面一样设$s_i$表示去掉第$i$个字母得到的字符串.另设$lcp(i,j)$表示$suf_i,suf_j$的最长公共前缀 考虑现在如果要比较$s_i$和$s_j$.不妨设$i<j$ 首先显然的是$i$之前和$j$之后的字符

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有