BZOJ 3473: 字符串 (广义后缀自动机)
摘要:```cpp / 广义后缀自动机, 每次加入维护 该right集合的set, 然后可以更新所有的parent,最终能够出现在k个串中right集合也就是set大小大于等于k的部分 这样的话就给了我们要跳的节点加了一个限制, 也就是跳的时候调到第一个sz = k的节点, 因为更长的话答案不会增加 数据
阅读全文
posted @
2019-03-31 07:54
fastle
阅读(155)
推荐(0)
[Ahoi2013]差异(后缀自动机)
摘要:```cpp / 前面的那一坨是可以O1计算的 后面那个显然后缀数组单调栈比较好写??? 两个后缀的lcp长度相当于他们在后缀树上的lca的深度 那么我们就能够反向用后缀自动机构造出后缀树然后统计每个点作为lca的情况和即可 / include include include include inc
阅读全文
posted @
2019-03-30 21:05
fastle
阅读(108)
推荐(0)
[TJOI2015]弦论(后缀自动机)
摘要:```cpp /* 一道在树上乱搞的题目 建立出parent树来, 然后就能搞出每个节点往后能扩展出几个串, 至于位置不同算同一个的话就强制让right集合大小为1即可 然后在树上类比权值线段树找第k大26分统计一下即可 */ #include #include #include #include #include #define ll long long #define mmp make...
阅读全文
posted @
2019-03-30 20:07
fastle
阅读(146)
推荐(0)
[HAOI2016]找相同字符(后缀自动机)
摘要:```cpp / 一个建立后缀自动机一个跑就行 依旧是对于所有的祖先都有贡献 / include include include include include define ll long long define mmp make_pair define M 400010 using namesp
阅读全文
posted @
2019-03-30 19:32
fastle
阅读(82)
推荐(0)
Noi.ac #309. Mas的童年(贪心)
摘要:```cpp / 用所谓的加法拆分操作得到 x + y = (x ^ y) + 2 (x & y) 那么我们这两段异或相当于前缀和 + 2 分段使左右两块&最大 记当前前缀异或和为S, 那么我们要找到优秀的X最大化(S^X) & X 显然贪心可行, 插入的时候维护当前数字所有子集, 打个vis标记,
阅读全文
posted @
2019-03-30 16:36
fastle
阅读(110)
推荐(0)
「2017 山东一轮集训 Day5」距离
摘要:```cpp / 写完开店再写这个题目顿时神清气爽, 腰也不疼了, 眼也不花了 首先考虑将询问拆开, 就是查询一些到根的链和点k的关系 根据我们开店的结论, 一个点集到一个定点的距离和可以分三部分算 那么就很简单了吧QAQ, 在树上可持久化弄一下 / include include include
阅读全文
posted @
2019-03-29 12:15
fastle
阅读(242)
推荐(0)
「HNOI2015」开店(树链剖分, 主席树)
摘要:```cpp / 考虑将所求的值拆分 记每个点到根的路径长度为dis_i, 那么我们要求的就是\sum_{i = l} ^ r dis_i + dis[u] (r l + 1) 2\sum_{i = l} ^ r dis_{LCA(i, u)} 前两个前缀和处理 对于第三个可以转换成一个经典问题,
阅读全文
posted @
2019-03-29 10:36
fastle
阅读(186)
推荐(0)
「2017 山东一轮集训 Day6」子序列(矩阵快速幂)
摘要:```cpp / 找出了一个dp式子 是否能够倍增优化 我推的矩阵不太一样 是 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 2 求得逆矩阵大概就是 1 0 0 0 0 0 2 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0
阅读全文
posted @
2019-03-29 08:44
fastle
阅读(107)
推荐(0)
「2017 山东一轮集训 Day4」棋盘(费用流)
摘要:```cpp 棋盘模型 + 动态加边 include include include include include define ll long long define M 51 define N 500010 define mmp make_pair const int inf = 0x3e3e
阅读全文
posted @
2019-03-29 08:42
fastle
阅读(110)
推荐(0)
一个沙雕程序
摘要:惊闻省督查组前来检查两个月, 会查IP的访问。我也不知道这样写有没有用, 可能比较多的话他就不查了吧 我的默认浏览器是360chrome cpp include include include include include include define ll long long define mm
阅读全文
posted @
2019-03-29 08:15
fastle
阅读(232)
推荐(0)
bzoj2555 substring(LCT 后缀自动机)
摘要:```cpp / 动态求right集合的大小 LCT维护parent树即可 注意 由于树是有向的不会换根并且每次操作单一, 于是不需要维护子树和(写起来很麻烦) 直接打标记修改即可 / include include include include include define ll long lo
阅读全文
posted @
2019-03-28 13:55
fastle
阅读(151)
推荐(0)
Hdu 4622 Reincarnation(后缀自动机)
摘要:```cpp / 字符串长度较小, 可以离线或者直接与处理所有区间的答案 动态加入点的时候, 因为对于其他点的parent构造要么没有影响, 要么就是在两个节点之间塞入一个点, 对于minmax的贡献没有改变 所以只统计这个点的贡献就好了 / include include include incl
阅读全文
posted @
2019-03-28 09:09
fastle
阅读(132)
推荐(0)
【SPOJ】Substrings(后缀自动机)
摘要:```cpp / 求right集合大小 然后后缀最大值 / include include include include include define ll long long define M 600010 define mmp make_pair using namespace std; in
阅读全文
posted @
2019-03-28 08:35
fastle
阅读(128)
推荐(0)
SP1812 LCS2 - Longest Common Substring II
摘要:能匹配上子串的节点对它的所有parent都有贡献 在树上转移即可 cpp include include include include include define ll long long define M 200010 using namespace std; int read() { int
阅读全文
posted @
2019-03-27 11:05
fastle
阅读(94)
推荐(0)
CF865D Buy Low Sell High
摘要:```cpp / 贪心来选择, 如果能找到比当前小的, 就用最小的来更新当前的 优先队列即可 / include include include include include define ll long long define mmp make_pair define M using names
阅读全文
posted @
2019-03-26 07:54
fastle
阅读(150)
推荐(1)
SP694 DISUBSTR - Distinct Substrings
摘要:```cpp / 统计每个节点的max和min, 然后求和即可 min = max[fa] + 1 / include include include include include define ll long long define M 6010 define mmp make_pair usi
阅读全文
posted @
2019-03-25 20:42
fastle
阅读(106)
推荐(0)
模板--后缀自动机
摘要:你没有看错,菜鸡退役前刚学后缀自动机 cpp include include include include include define ll long long define M 2000010 define mmp make_pair using namespace std; int read
阅读全文
posted @
2019-03-25 20:41
fastle
阅读(126)
推荐(0)
十二省NOI“省选”联考模测(第二场)A抽卡大赛
摘要:```cpp / dp维护整体的概率, 每次相当于回退一格然后重新dp一格 / include include include include include define ll long long define M 202 define mmp make_pair using namespace
阅读全文
posted @
2019-03-25 20:39
fastle
阅读(118)
推荐(0)
oi造数据
摘要:```cpp #include #include #include #include #include using namespace std; #define problem "a" //输出文件名 #define prename "a" //更改之前的文件名 char ak[1000]; int cases = 10;//数据组数 int mode = 1;//造数据 / 重...
阅读全文
posted @
2019-03-20 14:41
fastle
阅读(801)
推荐(3)
SPOJ COT3 - Combat on a tree
摘要:```cpp / 考虑直接使用暴力来算的话 SG[i]表示以i为根的子树的SG值, 然后考虑枚举删除那个子树节点, 然后求拆成的树的sg异或值, 求mex即可 复杂度三次方 然后考虑尝试 整体来做 发现对于每次子树的合并, 每棵子树种的sg值相当是异或了其他的所有子树 而这个东西显然是可以用 线段树
阅读全文
posted @
2019-03-14 22:35
fastle
阅读(107)
推荐(0)
[HAOI2008]下落的圆盘
摘要:```cpp / 对于每个圆, 考虑之后所有的圆覆盖了他的哪些部分即可 所以我们要实现两圆求交点, 区间求并 / include include include include include include define ll long long define M 2010 define mmp
阅读全文
posted @
2019-03-14 15:22
fastle
阅读(87)
推荐(0)
CF533A Berland Miners
摘要:```cpp 线段树维护贪心 /* */ #include #include #include #include #include #include #include #define ll long long #define M 500010 #define mmp make_pair #define INF 1000000000 using namespace std; int read()...
阅读全文
posted @
2019-03-13 22:13
fastle
阅读(131)
推荐(0)
CF 966E May Holidays
摘要:```cpp / 考虑对于询问分块, 每根号n个询问做一次 考虑一次询问, 我们建立出虚树来每条链上的更改一定是一样的, 然后会有根号条链 对于每条链上的点按照w基数排序并且合并相同, 然后每次更改 就是一个指针移动一格, 根号n次更改每次都要枚举一遍所有的链 所以是On的 总体N\sqrt(N)
阅读全文
posted @
2019-03-13 21:27
fastle
阅读(159)
推荐(0)
CF603EPastoral Oddities
摘要:```cpp /* LCT管子题(说的就是你 水管局长) 首先能得到一个结论, 那就是当且仅当所有联通块都是偶数时存在构造方案 LCT动态加边, 维护最小生成联通块, 用set维护可以删除的边, 假如现在删除后不影响全都是偶数大小的性质 就删除 不清楚link为啥要makeroot两次 */ #include #include #include #include #include #i...
阅读全文
posted @
2019-03-13 17:52
fastle
阅读(109)
推荐(0)
fastle
摘要:```
昨晚梦见日本和中国打仗, 发过来了很多导弹, 但是飞行速度很慢, 我还能看到上面的辐射三角号
之后我就趴在地上躲导弹
然后感觉身体被蒸发, 意识逐渐模糊, 就醒了 ``` ```
attack大爷的休闲(修仙)题 感觉就是板子大作战
虽然都不会打 ``` ```
梦见和聂老大 mhe gxb等人参加了不知道什么比赛, 聂老大说下午飞机回去时间很紧, 叫我们考完试出门往北走。
果然...
阅读全文
posted @
2019-03-12 21:43
fastle
阅读(209)
推荐(1)
CF1017G The Tree
摘要:```cpp /* 这是什么神仙题目QAQ 首先考虑在序列上的问题 先不考虑修改成白色, 一个白点能r被染成黑色 意味着能够找到一个l使得在l-r中的操作1次数大于等于 r - l + 1 我们把初始值覆盖成-1就相当于单点+1求最大后缀和了 然后覆盖成白色, 相当于在这个点减去一些值使得最后到达他的最大后缀是-1, 然后对子树进行覆盖 上树同理 树剖即可 */ #include #...
阅读全文
posted @
2019-03-12 20:37
fastle
阅读(159)
推荐(1)
BZOJ4771 七彩树
摘要:```cpp / 线段树合并 维护每个颜色的最小深度即可 ??? 要强制在线 考虑不限制深度的方法统计子树中的颜色个数将每种颜色按照dfs序排序, 然后树上每个点答案贡献 + 1, 同种颜色相邻dfs序的lca处 1 这样统计子树和即可 考虑假如有深度限制的话, 这个方法可以离线来做, 按照深度从小
阅读全文
posted @
2019-03-12 17:49
fastle
阅读(143)
推荐(0)
luogu Eat the Trees
摘要:```cpp / 用和模板类似的方法就行 但是实际上弱化版不用考虑匹配情况限制更加宽松, 只需要保存每个位置有无插头即可, / include include include include include include define ll long long define M 13 define
阅读全文
posted @
2019-03-12 11:41
fastle
阅读(97)
推荐(0)
插头DP模板
摘要:```cpp / 插头dp模板 抄的GNAQ 的 括号表示法 / include include include include include include define ll long long define M 13 define mmp make_pair using namespace
阅读全文
posted @
2019-03-12 10:28
fastle
阅读(121)
推荐(0)
[NOIP2017] 宝藏
摘要:```cpp / 宝藏的子集dp做法 看起来还是很靠谱的 需要保存的状态就只有选择的状态和已选的最大深度 令f[S][i] 表示当前选择的生成树集合为S, 树高为i的最小花费 那么显然F[S][i] 可以从所有的 F[T \subset S][i 1]转移而来, 我们暴力考虑将其连接上的点深度都是最
阅读全文
posted @
2019-03-11 15:08
fastle
阅读(176)
推荐(0)
LOJ6268拆分数
摘要:```cpp / 相当于每种物品都有无限个的背包 毕竟考场上写exp是个比较危险的行为 对数据进行根号分治是个比较好的方法 对于小于等于根号的部分暴力背包转移 对于大于根号的 最多只会拿根号个 dp一下就好了 / include include include include include inc
阅读全文
posted @
2019-03-11 11:26
fastle
阅读(229)
推荐(0)
有标号的二分图计数问题123
摘要:因为OJ挂了, 所以三个代码实际上都是假代码, 应该不能过题. 有标号的二分图计数1 cpp / 求n个点的二分图(可以不连通)的个数。n ≤10^5 其中二分图进行了黑白染色,两个二分图不同:边不同 或 点的颜色不同 然后答案就是枚举有几个点是黑的, 然后黑白点之间连边即可 / include i
阅读全文
posted @
2019-03-11 08:25
fastle
阅读(164)
推荐(0)
[ZJOI2016]小星星
摘要:``` / 给定一张n点m边无向图以及n个点的树 求将n个点一一映射到图上,并且本来两个点之间有连边的点现在依然有连边 求方案数 根据定义状态压缩有一个N^3 3^n的算法, f[i][j][S]表示以i为根, 根对应到图中是j, 在图中已经匹配的状态为S的方案数 然后我们对他进行容斥优化 现在我们
阅读全文
posted @
2019-03-10 21:13
fastle
阅读(159)
推荐(0)
「ZJOI2015」地震后的幻想乡
摘要:```cpp / 难度最低的解法 钦定一个边集S作为前S小如果这个边集假如第|S|小这条边时加入时S恰好联通, 那么我们就能够算出他的贡献了 恰好联通 = 加了这条边之前不连通方案数 加了这条边之后不连通方案数 然后考虑dp联通不连通的状态 f[S][i], g[S][i] 分别表示点集为S用了i条
阅读全文
posted @
2019-03-10 20:22
fastle
阅读(102)
推荐(0)
BZOJ2560串珠子
摘要:```cpp / 很清新的一道题(相比上一道题) g[S]表示该 S集合中胡乱连的所有方案数, f[S] 表示S集合的答案 那么F[S] 等于G[S]减去不合法的部分方案 不合法的方案就枚举合法的部分就好了 g[S]求法可以由选择一个点和其他没被选择的之间连边的 / include include
阅读全文
posted @
2019-03-10 17:06
fastle
阅读(101)
推荐(0)
Noip数学整理
摘要:[toc] Noip数学整理 序 因为某些原因, Noip对于数学方面的考纲仅停留在比较小的一部分,而这一部分~~在平常的做题中接触较少~~我做的题目太少, 为了防止NOIP爆炸, 整理一些Noip的数学知识还是有用的。 1 取模相关 所得结果的正负由 决定,与 无关。如: ,` 7%4= 3 7%
阅读全文
posted @
2019-03-10 15:13
fastle
阅读(1032)
推荐(0)
BZOJ3812主旋律
摘要:/* 这道题其实没有看懂 所以整理一下吧 首先思想转化成所有方案减去不强联通的方案 不强联通的方案相当于很多强联通分量缩点后的dag 转化成子问题, 问很多点的dag方案数 然后枚举作为出度为0的点集 T, 然后S - T和T之间的边是随便连的 但是由于S-T中你不能保证不包含出度为0的点, 所以要容斥 最后得到一个式子 f(S) = \sum{T \belong S T != kongji}...
阅读全文
posted @
2019-03-10 14:41
fastle
阅读(117)
推荐(0)
有道云笔记处理小工具
摘要:有道云笔记中的数学公式插入比较烦人, 转换成markdown比较麻烦,用这个代码进行转换能稍微好一点.
阅读全文
posted @
2019-03-10 14:40
fastle
阅读(511)
推荐(0)