首页 > 其他分享 >字符串练习

字符串练习

时间:2023-07-21 11:34:47浏览次数:35  
标签:lcp 后缀 练习 越小 字符串 考虑 向量 翻转

P4081 [USACO17DEC] Standing Out from the Herd P

只有一个串怎么做?

那就是 P2408 不同子串个数

跑一遍后缀排序,按排序结果遍历后缀,考虑每个后缀会产生多少新串。

为保证每个不同的串只被记录一次,只考虑去掉它与上一个串的重复部分,即为 \(height_i\)。

多个串类似,在串中加上分隔符跑 SA,给每个位置记录一下它原来属于哪个串。

同一个串之间的去重与上面同理,只不过求 lcp 要写个 ST 表什么的求最小值(可能不用?)。现考虑不同串之间的去重。

由于一个后缀与其它后缀的 lcp 越往前越小,越往后越小(因为取 \(\min\)),因此只用向前向后都找到第一个不属于同一个串的后缀并取 lcp。

把上面 3 个lcp 长度取 \(\max\) 就是应该去掉的串数。

P2603 [ZJOI2008] 无序运动

一组点就是一堆首尾相接的向量形成的链。

不考虑沿 \(x\) 轴翻转的情况,相邻向量之间的 长度之比 和旋转的 有向角度 不变。因此以这个东西为特征值表示一组点。于是就是一个字符集巨大的 \(\text{ACAM}\)。

听说在 \(ch[u][i]\) 不存在时 暴力跳 fail 是对的,看看这个,我不会证。

翻转时 有向角度 会变成负的,解决方法是把给的点集沿 \(x\) 轴翻转后再匹配一次,加起来。

五百万车细节,挂了 16 发。

标签:lcp,后缀,练习,越小,字符串,考虑,向量,翻转
From: https://www.cnblogs.com/jimmywang/p/17570846.html

相关文章

  • 9Java中如何判断一个字符串是否包含另一个子串
    在Java中,我们经常会遇到需要判断一个字符串是否包含另一个子串的情况。对于这个问题,我们可以使用一些简单而有效的方法来解决。本文将介绍几种常见的方法,以及它们的优缺点。方法一:使用contains方法Java中的String类提供了一个contains方法,可以很方便地判断一个字符串是否包含另......
  • 数据结构练习笔记——链式栈的设计与实现
    链式栈的设计与实现【问题描述】采用链式存储结构实现栈的基本操作,并借助栈实现进制转换。【输入形式】整数【输出形式】二进制数【样例输入】10【样例输出】1010#include<iostream>usingnamespacestd;#include<stdlib.h>structsnode{intdata;sn......
  • 【求助+半题解】BZOJ1461字符串的匹配
    先说思路:因为我们是比对较短的\(B\)与较长的\(A\)的子串,所以我们求不变的\(B\)的\(next\)对于这道题我们可以使用树状数组查询前缀和维护数的排名。对于相同的数我们查询的排名是有误的,因此不仅要比对小于等于该数的前缀和,也要比对小于该数的前缀和。如:对于\(A=2\)\(2\),\(B......
  • C++ 不用现成的类库 实现两个非负整数的字符串的和
    给定两个非负整数的字符串num1 和num2 ,返回num1与num2的和Note: num1 和num2 长度都小于5100. num1 和num2 只包含0-9的数字.num1 和num2 开头不为0.不能用现成的类库直接将输入的字符串转换成整数思路:从低位开始遍历相加,和≥10标记add_val=1,<10标记add_val=......
  • python字符串转化为列表
    Python字符串转化为列表的步骤作为一名经验丰富的开发者,我会向你介绍如何将Python字符串转化为列表。下面是整个过程的步骤:步骤描述步骤1输入一个字符串步骤2使用split()方法将字符串拆分成一个列表步骤3得到转化后的列表接下来,我将详细解释每个步骤中要做......
  • python字符串转int
    Python字符串转int的实现方法简介在Python编程中,经常需要将字符串转换为整数。字符串转int的过程可以使用内置的int()函数来实现。本文将详细介绍这个过程的步骤和相关代码,并给出相应的注释说明。字符串转int的步骤下面是将字符串转换为整数的步骤:步骤描述1获取输入......
  • python字符串正则截取
    Python字符串正则截取的实现1.简介正则表达式是一种用来描述、匹配一定模式字符串的工具。在Python中,我们可以使用re模块来进行字符串的正则截取。本文将为你提供实现Python字符串正则截取的详细步骤和代码示例。2.实现步骤下表中展示了实现Python字符串正则截取的步骤:步......
  • python字符串原样输出
    如何实现Python字符串原样输出对于刚入行的小白开发者来说,可能会遇到一些让人困惑的问题。其中之一就是如何实现Python字符串原样输出。在本文中,我将向你解释整个过程,并提供每一步所需的代码。流程为了更好地理解整个过程,让我们首先通过表格展示实现Python字符串原样输出的步骤......
  • sql 练习(hive,spqrk)
    数据准备表1课程表(course)*字段名**数据类型*课程编号(CNO)string课程名称(CNAME)string教室编号(TNO)string表2成绩表(score)*字段名**数据类型*学生编号(SNO)string课程标号(CNO)string分数(DEGREE)int表3学生表(student)*字段名**数据......
  • 用Python删除含有特定字符串的列
    用Python删除含有特定字符串的列作为一名经验丰富的开发者,你可以帮助那些刚入行的小白解决一些常见的编程问题。本篇文章将教会你如何使用Python删除含有特定字符串的列。整体流程在开始编写代码之前,我们需要先了解整个流程以及需要的步骤。下表展示了实现这个任务的步骤及其解......