摘要: 8.9 cf 235C 后缀自动机 题解 hdu 3507 复习了一下斜率优化dp 9.4 cf258D f[i][j]表示p[i]比p[j] 题解 cf261D 利用n*bmax并不大,均摊搞事情 9.11 2017 icpc Urumqi I 带权并查集 cf724G 线性基,按位计算。没开lo阅读全文
posted @ 2018-08-09 09:57 OldJang 阅读(84) 评论(1) 编辑
摘要: 题目大意 有长度为 m 的序列 b 和长度为 n 的序列 a,问序列 a 中有多少个长度为 m 的区间能和序列 b 匹配。两个序列中的元素 x; y 能配对当且仅当 x + y ≥ h,两个序列能匹配当且仅当存在完备匹配。 题解 非常简单的线段树题。做变换b[i]=h-b[i],再排个序,就转换成了阅读全文
posted @ 2019-03-13 17:58 OldJang 阅读(2) 评论(0) 编辑
摘要: 随便搜了一套题发现海星,就把有人过的题补了吧。 A-Always Cook Mushroom(hdu 5032)(待补) B-Building(hdu 5033) 读入的时候有点问题所以一直wa,然后我现在才知道fabs和abs是不一样的,明明pas里是一样的。 只考虑每个观测点向左可以看到的角度,阅读全文
posted @ 2018-12-07 17:14 OldJang 阅读(5) 评论(0) 编辑
摘要: 题意 有一个长度为 n 的排列 p,会进行恰好 m 次操作,第 i 次操作会交换第 ai 个数和第 bi 个数字,且交换的概率是0.5,问最后逆序对数目的期望 题解 用f[i][j]表示当前p[i]>p[j]的概率,考虑每次交换会对f[i][j]造成的印象,实际上就是f[a[i]][x]=f[b[i阅读全文
posted @ 2018-09-04 16:50 OldJang 阅读(297) 评论(0) 编辑
摘要: 8.9 cf 235C 后缀自动机 题解 hdu 3507 复习了一下斜率优化dp 9.4 cf258D f[i][j]表示p[i]比p[j] 题解 cf261D 利用n*bmax并不大,均摊搞事情 9.11 2017 icpc Urumqi I 带权并查集 cf724G 线性基,按位计算。没开lo阅读全文
posted @ 2018-08-09 09:57 OldJang 阅读(84) 评论(1) 编辑
摘要: 题目大意 给若干个询问串,询问他以及他的循环同构串在原串中出现了多少次 题解 显然如果不包含循环同构的条件只要在sam上跑一遍,然后找到minlen>=串长的parent树上最高的节点就行了,答案就是这个节点的right集合的大小。对于循环同构的话,只要把串复制一份接在后面,然后统计n次即可。注意走阅读全文
posted @ 2018-08-09 09:56 OldJang 阅读(28) 评论(0) 编辑
摘要: 4817: [Sdoi2017]树点涂色 Description Bob有一棵n个点的有根树,其中1号点是根节点。Bob在每个点上涂了颜色,并且每个点上的颜色不同。定义一条路 径的权值是:这条路径上的点(包括起点和终点)共有多少种不同的颜色。Bob可能会进行这几种操作: 1 x: 把点x到根节点的路阅读全文
posted @ 2017-06-13 11:00 OldJang 阅读(84) 评论(0) 编辑
摘要: 题目大意: 一张n个点m条边的有向图,问有多少对(x,y)存在有一条从1到x的路径,有一条1到y的路径,他们俩不相交。 题解: ……于是为了这题我去学习了一下支配树,感觉很妙啊。 设定了一个起点之后,u支配点就是从起点到u的必经点。支配树就是每个点都向自己最近的支配点连边,这有一个线性算法……这篇博阅读全文
posted @ 2017-05-30 18:05 OldJang 阅读(92) 评论(0) 编辑
摘要: 人生哲学。最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱。这样的 想法当然非常好啦,但是她们也发现她们面临着一个问题,那就是店开在哪里,面 向什么样的人群。很神奇的是,幻想乡的地图是一个树形结构,幻想乡一共有 n 个地方,编号为 1 到 n,被 n-1 条带权的边连接起来。每个地方都住着一个阅读全文
posted @ 2017-05-30 17:42 OldJang 阅读(47) 评论(0) 编辑
摘要: 首先我们需要排个序,如果排序之后相邻两项差超过1就是无解。统计一下每个数出现的次数num[i]。 然后我们很容易发现,一个完美序列,去掉所有权值大于某个值的数之后,还是完美的。 这样我们就考虑一路dp过去,将每一种数插进去。然后发现,当前数的决策之和上一个数有关。我们插的位置实际上只有两种可能:两边阅读全文
posted @ 2017-05-29 20:37 OldJang 阅读(334) 评论(0) 编辑
摘要: 考虑每个值作为最大值的区间实际上可以用单调栈求出来,即找到左边第一个比它大的数l[i],右边第一个比它大的r[i],那就是左端点在[l[i],i]右端点在[i,r[i]]的区间是以第i个数作为最大值。 这样的话可以看成二维平面上一个矩形区域,每个矩形区域有着一样的最大值,如果我们把最大值相同的矩形放阅读全文
posted @ 2017-05-29 20:22 OldJang 阅读(286) 评论(0) 编辑