![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
字符串
MrBird_to_fly
这个作者很懒,什么都没留下…
展开
-
Poj 3974 manacher
cccc模拟赛有个 求最长回文子串长度的题,一开始看错题了以为是子序列,雪崩。赛后被告知是manacher,然而暴力也能过,我去。 学了一波,找个例题做一下。题意:求最长回文子串长度 做法:蛮巧妙的,大致是记录一个maxid(之前回文子串的右端点的最大值)和对应的中心坐标id.每次直接扩展半径至p[2*id-i]和maxid-i之间的较小值,再继续扩展,这样就有效避免了重复比对.有效比对次数原创 2016-05-17 08:54:01 · 469 阅读 · 0 评论 -
回文树练习题
Tsinsen A1280 问题描述 顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。#include <bits/stdc++.h&a原创 2018-09-08 18:13:11 · 746 阅读 · 0 评论 -
Hdu 4821 hash+map判重
题意:给定一个字符串,找这样的子串数,长为l*m,能分解成m个长为l的不同子串。 做法:算出所有长为l的hash值,分成l组,跑一遍,用map做一下判重。 代码:#include <cstdio>#include <algorithm>#include <cstring>#include <map>#include <iostream>using namespace std;typed原创 2016-10-27 18:48:11 · 357 阅读 · 0 评论 -
Hdu 4495 hash+dp
题意:给一个字符矩阵,求最大对称等腰直角三角形面积。做法:首先,旋转对称,做四次。每次先用二分hash预处理出点(i,j)向左和向上延伸的最长长度len[i][j],然后dp[i][j]=min(len[i][j]+dp[i-1][j-1]+2),所有dp值取最大就是边长,算一下得到面积。代码:#include <cstdio>#include <cstring>#include <algori原创 2016-12-13 09:06:12 · 394 阅读 · 0 评论 -
CF 455B trie上博弈
传送门 题意: 给了一个字典,初始有一个空串,A和B轮流在串末尾加字符,要求新字符必须是字典里某个单词的前缀,无法加字符者输。以上博弈共有k轮,每轮的失败者获得下一轮的先手,获得最后一轮胜利的人获胜,问先手获胜还是后手获胜。做法: 搞一个trie,每轮先手获胜与否很好搞。 因为有k轮相同的博弈,所以考虑三种情况: 1.先手掌控雷电,想赢就赢想输就输。对于这种情况,先手只要前k-1故意输最后原创 2017-06-14 16:03:28 · 370 阅读 · 0 评论 -
Hdu 4057 AC自动机+DP
其实是个垃圾题,但是当时我不会AC自动机。 写了几个板题之后这个板子我已经会背了,于是随便写写就1A了。#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <iostream>using namespace std;int n, l;char s[1050];int w[20]原创 2017-06-30 22:45:22 · 283 阅读 · 0 评论 -
Poj 3461 KMP模板
Oulipo Time Limit: 1000MSMemory Limit: 65536K[显示标签] Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter ‘e’. He was a member of the Oulipo g原创 2017-02-03 15:12:48 · 246 阅读 · 0 评论 -
Poj 3261 后缀数组
后缀数组真是强大,5s的题花了32ms#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn=20500;int s[maxn], s1[maxn];int id[maxn];int sa[maxn], t[maxn], t2[maxn], c[maxn], n,原创 2017-03-01 17:19:01 · 239 阅读 · 0 评论 -
Poj 1743 后缀数组
第一次写后缀数组,熟练一下模板。纠结了很久正负1的问题,大概是这样的:字符串从0开始,长度为n,在后面加一个0,这个0在build_sa里是要算上的,算rank的时候也要算上的,但是显然这个最后0的rank是0,所以为了简写,直接在算height的时候略过了,但我觉得直接统一一下,所有的数组都算上,然后加个if特判一下,这样比较好记也不太容易搞混。然后吐槽下lrj的白书,缺少了很多细节的解释,对初学原创 2017-03-01 16:08:57 · 449 阅读 · 0 评论 -
Poj 2774 二分+字符串hash
题意:给两个长1e5的字符串,求最长公共子串长度 做法:二分答案+hash。hash的思路大概是把字符串看做是p进制数,为了尽可能避免冲突,p取素数31或131等。hash完了排序,通过判断hash值相同来判字符串相同。 代码:#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typede原创 2016-10-27 15:16:16 · 553 阅读 · 0 评论 -
CF 932G 回文树
关于log个border的dp,把等差数列的border的贡献和记录在最长的回文节点上。 #include <bits/stdc++.h>using namespace std;typedef long long ll;const int mod=1e9+7;const int maxn=1000007;char str[maxn];struct PAM{ in...原创 2018-10-31 19:32:55 · 365 阅读 · 0 评论