随笔分类 -  OJ -- BZOJ

摘要:题目大意:求可重叠的相同子串数量至少是K的子串最长长度 洛谷传送门 依然是后缀数组+二分,先用后缀数组处理出height 每次二分出一个长度x,然后去验证,在排序的后缀串集合里,有没有连续数量多于K个串的长度>=x, 但据说有一种高端做法是把二分换成单调队列,能减少常数,可惜我并没有看懂...... 阅读全文
posted @ 2018-09-24 22:51 guapisolo 阅读(146) 评论(0) 推荐(0)
摘要:题目大意:略 由于字符集大,要用map维护Trie树 并不能用AC自动机的Trie图优化,不然内存会炸 所以我用AC自动机暴跳fail水过的 显然根据喵星人建AC自动机是不行的,所以要根据问题建 然而这题有一些很艮的地方: 1.如果一个喵的名和姓都被点到,那他只被点到了一次 2.询问的串可能相同 3 阅读全文
posted @ 2018-09-24 22:49 guapisolo 阅读(180) 评论(0) 推荐(0)
摘要:题目大意:给你一堆字符串,一个串不合法的条件是这些字符串中任意一个是这个串的子串,求合法的串的数量 其实这道题比 [HNOI2008]GT考试 那道题好写一些,但道理是一样的 只不过这道题的答案可以转化为 所有可能的字符串(26^m)数量 - 不合法的字符串数量 定义f[i][j]表示匹配到了第i个 阅读全文
posted @ 2018-09-24 22:47 guapisolo 阅读(172) 评论(0) 推荐(0)
摘要:恢复内容开始 题目大意:给定一个由数字构成的字符串A(len<=20),让你选择一个长度为n(n是给定的)字符串X,一个合法的字符串X被定义为,字符串X中不存在任何一段子串与A完全相同,求互不相同的合法的字符串L的数量 第一眼看就没啥思路....瞅了一眼题解,是KMP优化DP,然后再用矩阵优化DP 阅读全文
posted @ 2018-09-24 22:46 guapisolo 阅读(203) 评论(0) 推荐(0)
摘要:洛谷P4299传送门 题目大意:给你一颗树,边是一条一条连上去的 在连接过程中会存在询问,询问当前节点所在联通块(其实是一颗树)的重心是哪个节点 以及森林中所有树的重心的异或和 在做这道题之前,要先了解树的重心的一个性质: 两棵树合并时,新树的重心在合并后,原来两颗树的重心的两个节点构成的那条链上 阅读全文
posted @ 2018-09-24 22:39 guapisolo 阅读(187) 评论(0) 推荐(0)
摘要:题目大意:给你一棵树,树的边是一条一条连上去的 洛谷P4219传送门 LOJ#2230传送门 在连边的过程中询问某条边的“负载”,即能通过这条边的所有不同的路径的数量 LCT动态维护当前节点的子树大小 size记录该节点的虚子树的大小之和,sum记录该节点为根节点的子树大小 更换虚子节点时,或者连上 阅读全文
posted @ 2018-09-24 22:38 guapisolo 阅读(201) 评论(0) 推荐(0)
摘要:题目大意:维护一个森林,支持边的断,连,修改某个点的权值,求树链所有点点权的异或和 洛谷P3690传送门 搞了一个下午终于明白了LCT的原理 阅读全文
posted @ 2018-09-24 22:37 guapisolo 阅读(140) 评论(0) 推荐(0)
摘要:题目大意:维护一个森林,支持边的断,连,以及查询连通性 LCT裸题 洛谷P2147传送门 1A了,给自己鼓鼓掌 1 #include <cstdio> 2 #include <algorithm> 3 #include <cstring> 4 #define il inline 5 #define 阅读全文
posted @ 2018-09-24 22:37 guapisolo 阅读(149) 评论(0) 推荐(0)
摘要:题目大意:给你一棵树,让你维护一个数据结构,支持 边的断,连 树链上所有点点权加上某个值 树链上所有点点权乘上某个值 求树链所有点点权和 (辣鸡bzoj又是土豪题,洛谷P1501传送门) LCT裸题,下传标记,搞法类似于洛谷线段树模板2 先下传乘法标记,val,sum,乘法标记,加法标记都要乘 再下 阅读全文
posted @ 2018-09-24 22:36 guapisolo 阅读(254) 评论(0) 推荐(0)
摘要:题目大意:略 调了好久终于过了! 我犯了一个错误,虽然我记得在翻转pushdown的时候交换lx和rx 但我应该翻转的是左儿子和右儿子的lx和rx!而不是当前节点的lx和rx 因为pushup的时候是根据左右儿子的lx和rx更新的! 还有就是在find的时候下传标记,在转到根的时候pushup 很丧 阅读全文
posted @ 2018-09-24 22:35 guapisolo 阅读(155) 评论(0) 推荐(0)
摘要:队列维护下凸包裸题 式子不太好推,但其实不用把式子全展开的..... k单调递增,x单调递增,队列维护一下就行了 因为f[i]期望最小值,所以维护下凸包 好像记录一下凸包的坐标能减少常数 阅读全文
posted @ 2018-09-24 22:34 guapisolo 阅读(147) 评论(0) 推荐(0)
摘要:我犯了sb错误然后调了1个小时......队列写错了 斜率k递增,b取最小值,队列维护凸包即可 f[0]的预处理好像有些奇怪???我把inf调大就过了??? 阅读全文
posted @ 2018-09-24 22:33 guapisolo 阅读(132) 评论(0) 推荐(0)
摘要:斜率优化DP裸题,DP方程很简单就不给了 优化一下,整理式子成y=kx+b的形式 发现x单调递增,斜率k单调递减,用一个队列维护凸包就行啦 f[i]和b成正比,而f[i]期望最大值,所以维护上凸包 阅读全文
posted @ 2018-09-24 22:32 guapisolo 阅读(143) 评论(0) 推荐(0)
摘要:题目大意:有n牧场排成一行,标号从1~n,每个牧场都可以放一个控制站,在第i个牧场放控制站需要花费a[i],控制站能够控制从它开始一直到它左边最靠近它的控制站之间的所有牧场,每个牧场放养量是b[i],这个牧场被它右侧离它最近控制站控制所需要支出的花费是它到牧场的距离d*b[j],在保证所有牧场都被控 阅读全文
posted @ 2018-09-24 22:31 guapisolo 阅读(153) 评论(0) 推荐(0)
摘要:题目大意:给你一棵树,支持一下三种操作 1.获取某节点到根节点的路径上所有节点的权值和 2.更换某棵子树的父亲 3.某子树内所有节点的权值都增加一个值w 当时想到了splay维护dfs序,查完题解发现思路是对的,然后我就写了足足6个小时才A st[x]代表入栈时间,ed[x]代表出栈时间 对于第一个 阅读全文
posted @ 2018-09-24 22:30 guapisolo 阅读(183) 评论(0) 推荐(0)
摘要:题目大意:有n个任务,有起始时间si和结束时间ei,以及该任务重要度pi,求某时刻xi正在进行的任务中,重要度前ki小任务的重要度之和 本以为是一道主席树的水题,可我调了半个多小时才调出来,原来是我新建的主席树根的左右儿子并没继承上个版本,导致某些时刻并没有任何刚开始或刚结束的任务,而在这个时间却找 阅读全文
posted @ 2018-09-24 22:29 guapisolo 阅读(151) 评论(0) 推荐(0)
摘要:题目大意:给你一个序列,求某个区间出现次数大于一半的数是什么 主席树裸题,刷刷水题提升自信= = 阅读全文
posted @ 2018-09-24 22:28 guapisolo 阅读(116) 评论(0) 推荐(0)
摘要:题目大意:维护一个字符串,支持插入字符和替换字符的操作,以及查询该字符串两个后缀的最长公共前缀长度 乍一看以为是后缀数组,然而并没有可持久化后缀数组(雾) 看题解才知道这是一道splay题,首先要对splay维护区间信息有一定了解 splay维护,插入字符,替换字符 而它的字树内所有儿子的中序遍历的 阅读全文
posted @ 2018-09-24 22:28 guapisolo 阅读(181) 评论(0) 推荐(0)
摘要:题目大意:让你维护一个数x(x位数<=3*1e7),要支持加/减a*2^b,以及查询x的第i位在二进制下是0还是1 作为一道noi的题,非常考验写代码综合能力,敲+调+借鉴神犇的代码 3个多小时才过... 思路并不难,题目里b<=30n暗示压位,每次压30位可过 先分析一下加法,加a*2^b相当于在 阅读全文
posted @ 2018-09-24 22:27 guapisolo 阅读(148) 评论(0) 推荐(0)
摘要:题目大意:给你一棵树,树上一共n个节点,共m次操作,每次操作给一条链上的所有节点分配一个权值,求所有节点被分配到所有的权值里,出现次数最多的权值是多少,如果出现次数相同就输出最小的。 (我辣鸡bzoj的权限号,洛谷上P4556也有这道题) 线段树合并入门题 也是比较常规的树上链的点差分 每次操作都在 阅读全文
posted @ 2018-09-24 22:26 guapisolo 阅读(215) 评论(0) 推荐(0)