08 2019 档案
摘要:题意 要你找一个最长的区间使得区间内每一个数出现次数都大于等于K。 题解-》https://blog.csdn.net/Ratina/article/details/97503663 #include<bits/stdc++.h> using namespace std; #define lson
阅读全文
摘要:题目大意:给出一个n个元素的数组A,A中所有元素都是不重复的[1,n]。有两种操作:1.将pos位置的元素+1e72.查询不属于[1,r]中的最小的>=k的值。强制在线。 题解因为数组中的值唯一,且在1到n的范围内,而询问的r和k也在1到n的范围内。 所以对于任意一个被操 作1修改过的值都不会成为询
阅读全文
摘要:大意: 给定串s, q个询问(l,r,k), 求子串s[l,r]的第kk次出现位置. 这是一篇很好的题解: https://blog.csdn.net/sdauguanweihong/article/details/100063096 加点个人: 我对上面的题解更为详细的解释下: 后缀数组处理出来的
阅读全文
摘要:后缀数组主要是得出: sa[i]=pos ; 排名第i的是pos位置开始的 (这里用于排名的都是原串中以不同位置开始到最后的字符串按照字典序排序) height[i] 是 suffix(sa[i-1]) 和 suffix(sa[i]) 的最长公共前缀长度,即排名相邻的两个后缀的最长公共前缀长度。 原
阅读全文
摘要:题意:n个竹子,有高度,q次询问,询问之间是独立的,每次查询输入l,r,x,y代表砍区间[l,r]]内的竹子砍y次,最后一次要砍成0,每次砍掉的总长度相同,问第x次砍的高度是多少。 既然每次要求砍掉的东西都相同,那么就可以直接算出来砍第x次需要砍掉多少(sumh(l~r)/y*x),然后只需要二分这
阅读全文
摘要:题意:给你一个数组,有两种操作,一种区间xor一个值,一个是查询区间xor的结果的种类数 做法一:对于一个给定的区间,我们可以通过求解线性基的方式求出结果的种类数,而现在只不过将其放在线树上维护区间线性基。 用线段树去维护区间合并 #include <bits/stdc++.h> using nam
阅读全文
摘要:https://www.luogu.org/problem/P4839 题目: 有两个操作 1 a b 在a的位置添加b数值 (注意一个位置可以有多个值) 2 a b : 在 a到b的范围任取任意的数值相异或,结果最大。 分析:用线段树去维护这个操作合并线性基的操作;时间复杂度O(nlogmlogx
阅读全文
摘要:hdu6579 题意初始时有n个数,现在有q次操作: 查询[l,r]内选择一些数使得异或和最大;在末尾加入一个数。题目强制在线。 思路对于i我们记录[1,i]每个基底最靠近i的位置和这个位置的值,然后查询时看r 这个位置记录的每个基底的位置是否大于等于l,如果大于等于那么[l,r] 内一定有一个位置
阅读全文
摘要:资料出处:https://blog.csdn.net/a_forever_dream/article/details/83654397 https://blog.csdn.net/qaq__qaq/article/details/53812883 基础操作: 定义设数集T的值域范围为[1,2n−1]
阅读全文
摘要:自补图的定义: 原图为G , 补图为H (H是在G的完全图上面去掉关于G图的边得到的新图),G和H为同构 同构的定义: 关于图的同构(Isomorphic),最简单的例子就是五边形和五角星了: 上图中,G1和G2为同构的,因为: 从G1的结点到G2的结点,存在一个一对一的映上函数 f (one -
阅读全文
摘要:https://ac.nowcoder.com/acm/contest/886/C 题意: 给出一个串A , 集合S里面为A串的回文字串 , 现在在集合S里面找出多少对(a,b),b为a的字串 分析:回文字串嘛,先盲猜一波回文自动机:我们现在知道回文自动机的原理图可以得出 , 它其实是用两棵树顶点为
阅读全文