首页 > TAG信息列表 > mxR

GYM103373F(线段树,子段问题)

GYM103373F(线段树,子段问题) 题意 给定一个01串。定义01交替或者10交替的子段为交替串。 有两个操作: flip区间 \([l,r]\) 输出区间 \([l,r]\) 内交替串的数量 思路 如果有极长交替串长度,可以算出交替串数量 于是考虑维护交替串的长度。我们用线段树对其维护。 维护当前结点的答

NOIP 模拟赛 简单题

\(\text{Solution}\) 发现题目就是求 \(\sum[\prod_{i=1}^k x_i \le n]\) \(k \le 10^9\) 太可怕了 然而发现如果限定 \(x_i > 1\) 那么 \(i \le \log n\) 于是我们可以愉快地统计了 设 \(f_i(n)\) 表示将 \(n\) 分成 \(i\) 份使 \(x_i > 1\) 的方案数 那么 \(f_i(n)=\sum_{d|n}f_

manacher

给定一个字符串,求出以每个位置为中心的最长回文子串。 流程 设 \(mxr\) 为当前所有回文串的最大的右边界,\(mid\) 为对应的中点 为了防止中点在两个位置中间,将原串的每两个字符间和开头结尾都塞一个相同的无关字符 若 \(i\leq mxr\),令 \(f_i=\min(f_{2mid-i,mxr-i+1})\)

HDU4553 - 约会安排 (线段树)

Description   寒假来了,又到了小明和女神们约会的季节。   小明虽为屌丝级码农,但非常活跃,女神们常常在小明网上的大段发言后热情回复“呵呵”,所以,小明的最爱就是和女神们约会。与此同时,也有很多基友找他开黑,由于数量实在过于巨大,怎么安排时间便成了小明的一大心事。   我们

manacher(马拉车)算法

给定字符串s,找到s中最长的回文子串。 回文串,指的是无论从左往右读还是从右往左读,结果都是一样的。 比如 “dabcbacf” 的最长回文子串为 “abcba”。 manacher算法 主要思路:充分利用前面已经求出的回文信息; 动态规划: 首先需要构建新的字符串,以消除奇回文串和偶回文串的

BZOJ 3836 Codeforces 280D k-Maximum Subsequence Sum (模拟费用流、线段树)

题目链接 (BZOJ) https://www.lydsy.com/JudgeOnline/problem.php?id=3836 (Codeforces) http://codeforces.com/contest/280/problem/D 题解 似乎是最广为人知的模拟费用流题目。 线段树维护DP可以做,但是合并的复杂度是\(O(k^2)\), 会TLE. 考虑做\(k\)次费用流,很容易建出一个图

【LOJ6498】「雅礼集训 2018 Day2」农民

题面 solution 直接暴力模拟,原数据可获得满分的成绩。 对于每个点,其父亲对其都有一个限制。故我们只需要判断当前点到根的路径上的限制是否都能满足即可。 考虑用树剖+线段树维护这个限制。考虑到翻转操作,我们需维护当前区间左儿子限制最小值/最大值和右儿子最小值/最大值。 注意翻