随笔分类 -  字符串

摘要:论战捆竹竿 题意:给定字符串 s,计数 "串 t 的长度" 可能的种数有多少种,使得 t 能被 s 作为印章印出来,且 |t|wn=|s|5×105nw1018。 第一步: 求出 \(s\ 阅读全文
posted @ 2024-11-09 18:20 FLY_lai 阅读(8) 评论(0) 推荐(0) 编辑
摘要:传送门 题意:给定长度为奇数的 01? 串,问多少种填法使得串可以变成 1。一次操作定义为把连续三个数变成它们的中位数。 这种计数题可以先考虑怎么判定一个串是否可以变成 1,称作合法。 根据人类智慧,可以想到 000S 合法 0S 合法,进而启示我们 阅读全文
posted @ 2024-08-16 16:14 FLY_lai 阅读(10) 评论(0) 推荐(0) 编辑
摘要:【定义与性质】 Primitive Word(PW):没有循环节的字符串。 Lyndon Word(LW):字典序严格小于它所有 cyclic-shift 的字符串。 LW 有很多美妙的性质。记 w 为一个字符串。 定义一个新符号 <!:若 a<!b,则 a 字典 阅读全文
posted @ 2024-08-05 23:26 FLY_lai 阅读(28) 评论(0) 推荐(0) 编辑
摘要:压缩 题意:一段由相同字符串重复而来的字符串可以写成次方的形式。给定 s,问 s 压缩之后最少还有多少个字符。 DP + KMP dp[len][i] 表示长度 len 起点 i 的最少是多少。dp[len][i] 初值 len,也就是不做任何 阅读全文
posted @ 2024-08-05 10:27 FLY_lai 阅读(36) 评论(0) 推荐(0) 编辑
摘要:【失配树:KMP 拓展】 先 KMP 一遍。然后对 0n 建立一棵树:nxt[i] 作为 i 的父结点。 则最长公共 border 就是这棵树上的 LCA 对应的长度。 border:若 a 既是 s 的前缀又是 s 的后缀,则 a 阅读全文
posted @ 2024-08-05 09:58 FLY_lai 阅读(28) 评论(0) 推荐(0) 编辑
摘要:【Trie 树】 我们试图给每一个字符串一个对应的值。但是由于字符串长度不定,也不是数字,所以不能用数组。 有几种办法: STL map,二叉排序树(平衡树),O(log(n)len)len 为字符串长度。 Trie,插入删除查询都是 O(len) 的。但是 阅读全文
posted @ 2024-02-01 09:49 FLY_lai 阅读(14) 评论(0) 推荐(0) 编辑
摘要:【最小表示法】 最小表示法 循环表示:从一个位置开始向后遍历,到末尾再倒回去最前面。一个字符串(数组)一共有 n 个。 最小表示法就是最小的循环表示。 例如,3 1 4 9 1 的最小表示法是 1 3 1 4 9. 如果我们用打擂台比大小的方式,因为字符串之间比较需要时间,总共是 \(O(n 阅读全文
posted @ 2024-02-01 09:47 FLY_lai 阅读(14) 评论(0) 推荐(0) 编辑
摘要:【哈希】 哈希可以分成两块:哈希函数和哈希表。 哈希函数是一种对应关系,它可以把任意类型映射为一个不太大的整数。 例如字符串,我们可能希望在字符串上记录一些属性。但是字符串不能当下标,那我们就只能加个大常数用 map。 这时,哈希函数出场了!如果我们有一个哈希函数 h() 可以把一个字符串 阅读全文
posted @ 2024-02-01 09:46 FLY_lai 阅读(21) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示