E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
BZOJ3160
【
BZOJ3160
】万径人踪灭
【题目链接】点击打开链接【思路要点】枚举对称中心,设关于该中心对称点的个数为\(x\),以该点为中心的最长回文子串长度为\(y\),那么该点对答案的贡献应为\(2^x-\lfloor\frac{y+1}{2}\rfloor\)。其中对称点的个数可以通过FFT或bitset压位求出,最长回文子串长度可以用Manacher算法求出。时间复杂度\(O(\frac{N^2}{w})\)或\(O(NLogN
cz_xuyixuan
·
2020-08-21 01:15
【OJ】BZOJ
【类型】做题记录
【算法】压位
【算法】FFT与NTT
【算法】Manacher算法
BZOJ3160
万径人踪灭 FFT+manacher
对不连续的对称序列计数显然可以转化为对称序列-连续对称序列连续对称序列显然可以用manacher算法计算得到:P[i]的和即为连续对称序列的个数所有对称序列总是关于某条对称轴对称,所以对称点的下标和为定值另f[i]表示以i为对称轴的点对个数(含自身对称)显然其中下标为按manacher规则翻倍之后的下标而这个布尔表达式我处理不来QAQ。。。膜了PoPoQQQ题解才知道可以强行定下字母之后转为01乘
liuguangzhe1999
·
2020-07-04 22:36
FFT
manacher
FFT小结
FFT(快速傅里叶变换)小结(理论写也只能copy,就略过了)
BZOJ3160
万径人踪灭略过manacher求连续回文子序列的部分,问题到了求出总的回文子序列个数令fi表示以i为中心对称的字符对个数,容易想到
Cabinfever
·
2017-08-18 00:42
FFT
[
BZOJ3160
]万径人踪灭(FFT+manacher)
题目描述传送门题目大意:在一个只含ab的字符串中选取一个子序列,使得:1、字符和下标都关于一个中心对称2、不能是连续的一段。求方案数。题解这题我的方法好蠢啊→_→首先容斥一下,答案=所有子序列的方案数-回文子串的数量由于回文的连续子序列一定满足下标对称,所以可以直接用manacher求出回文子串的数量然后就是统计所有子序列的方案数的问题了将a和b分开考虑,f(i)和g(i)表示当前这一位是否是当前
Clove_unique
·
2017-04-24 14:35
题解
manacher
FFT/NTT
[
BZOJ3160
]万径人踪灭(FFT+manacher)
题目描述传送门题目大意:在一个只含ab的字符串中选取一个子序列,使得:1、字符和下标都关于一个中心对称2、不能是连续的一段。求方案数。题解这题我的方法好蠢啊→_→首先容斥一下,答案=所有子序列的方案数-回文子串的数量由于回文的连续子序列一定满足下标对称,所以可以直接用manacher求出回文子串的数量然后就是统计所有子序列的方案数的问题了将a和b分开考虑,f(i)和g(i)表示当前这一位是否是当前
Clove_unique
·
2017-04-24 14:35
题解
manacher
FFT/NTT
bzoj3160
万径人踪灭
3160:万径人踪灭TimeLimit: 10Sec MemoryLimit: 256MBSubmit: 814 Solved: 459[Submit][Status][Discuss]DescriptionInputOutputSampleInputSampleOutputHINTSource2013湖北互测week1吐槽:我替“千山鸟飞绝”感到不服。manacher+FFT,思路好题补集思
AaronGZK
·
2016-05-25 00:00
字符串
fft
Manacher
【
BZOJ3160
】万径人踪灭 FFT manacher
我是真的想写字符串的题。。。这道题除了manacher和字符串有半!毛!钱!关!系!题目所求的数量可以由(无限制对称字符串)-(连续对称字符串)求得其中(连续对称字符串)可以由manacher求得,问题变为求(无限制对称字符串)的数量我们考虑d[i]表示s[a]==s[b]&&a+b==i的数的对数(ab可以相等并且ab有序),那么sum=sigma(2^((d[i]-1)/ 2))现在的问题是如
qq_34637390
·
2016-04-19 20:00
fft
BZOJ3160
万径人踪灭 FFT+manacher
对不连续的对称序列计数显然可以转化为对称序列-连续对称序列连续对称序列显然可以用manacher算法计算得到:P[i]的和即为连续对称序列的个数所有对称序列总是关于某条对称轴对称,所以对称点的下标和为定值另f[i]表示以i为对称轴的点对个数(含自身对称)显然其中下标为按manacher规则翻倍之后的下标而这个布尔表达式我处理不来QAQ。。。膜了PoPoQQQ题解才知道可以强行定下字母之后转为01乘
liuguangzhe1999
·
2016-04-13 22:00
fft
Manacher
【
bzoj3160
】万径人踪灭 FFT+manacher
首先把字符串用#间隔开总数-连续的字符串连续的用manacher求总数如何求?f[i]表示以i为中心有多少对对称的字符(不包含#,但包含本身)ans=∑2^f[i]-n原字符串的位置i对应新字符串的位置2*if[i]=∑str[j]*str[i-j]第一次a=1,b=0第二次a=0,b=1这样算出来是对称的个数,(f[i]+1)/2是对数最后直接计算就可以了#include #include #i
u012288458
·
2016-03-24 20:00
bzoj3160
万径人踪灭 FFT+manacher
一道挺不错的题目。关键是想到卷积(相信大神看到这就会做了,不对,大神还需要来看我的博客吗)。 首先我们可以求出所有的回文子序列,然后减去回文子串的数量,就可以得到答案了。回文子串的数量可以用manacher算法O(N)得到,那么就看怎么得到回文子序列了。 不妨来看以一个点i为中心有多少回文子序列(以夹缝为中心的回文子序列同理)。我们发现关键是统计有多少个k,满足ch[i-k]=
lych_cys
·
2016-03-09 20:00
字符串
fft
Manacher
bzoj3160
万径人踪灭
具体见http://blog.csdn.net/PoPoQQQ/article/details/42193259 code: 1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 #include<cstring> 5 #include<algorithm
·
2015-11-08 10:29
ZOJ
bzoj3160
: 万径人踪灭
题面传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3160思路:首先题目中不要连续的回文串,那么答案就是总的回文串-连续回文串连续回文串用manacher就可以O(n)搞出来现在的问题是求总的回文串。既然是回文串,我们就想到枚举对称轴为了方便表示在字符的夹缝的对称轴,下标*2,下标为奇数则为夹缝。令f[i]为对称轴为i时两边相同的字符对数,
thy_asdf
·
2015-07-21 08:00
fft
Manacher
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他