随笔分类 -  数据结构——嵌套

摘要:外层是借鉴了kd-tree的替罪羊里层是线段树,插入就是正常插入+拍扁重建,查询的时候,我们就像树状数组套线段树一样操作在替罪羊中找到的线段树根节点,但是对于在kd-tree查找过程中遇到的单点,我们并不能将其插入到额外的线段树中,因为你想我们的单点个数是n^1.5级别的,而我们还要乘上一个大到30 阅读全文
posted @ 2018-01-02 20:49 TS_Hugh 阅读(398) 评论(0) 推荐(0)
摘要:树剖+树状数组套线段树O(nlogn^3)(我打的),有一种更加优秀的算法是O(nlogn^2)的就是直接树状数组套线段树欧拉序(并不快),或者是用主席树维护原始的树的信息,同时用树状数组套线段树维护dfs序上的修改(很优秀),这道题将树上信息转化为序列信息,并在此基础之上用任意树套树,只不过转化的 阅读全文
posted @ 2017-12-12 21:45 TS_Hugh 阅读(271) 评论(0) 推荐(0)
摘要:外面是树状数组,里面是动态开点线段树,对于查询我们先把有关点找出来,然后一起在线段树上行走,这样就是单个O(log2)的了 阅读全文
posted @ 2017-08-03 13:20 TS_Hugh 阅读(244) 评论(0) 推荐(0)
摘要:把pos[i]上出现的平常值定义为nor[i]最大值定义为max[i]最小值定义为min[i],那么我们发现在两个值,i(前),j(后),当且仅当max[i]<=nor[j],nor[i]<=min[j]时才会组成序列的前后两个值,并且当序列里所有连续的两个值都满足这个条件是时就可以,因此我们以f[ 阅读全文
posted @ 2017-07-15 17:14 TS_Hugh 阅读(444) 评论(0) 推荐(0)
摘要:不得不说,做过最爽的树套树———— 由于有了区间操作,我们很容易把区间看成一棵平衡树,对他进行插入,那么外面一层就是平衡树了,这就与我们之前所见到的不同了。我们之前所见到的大多数是线段树套平衡树而此题中插入时坐标会改变即必须对其找到合适的顺序,而线段树无疑是不支持动态插入的,他维护的是一个静态区间( 阅读全文
posted @ 2017-06-15 09:12 TS_Hugh 阅读(1469) 评论(2) 推荐(0)
摘要:这个题就是动态偏序对,每次操作做两个删除两个插入就好了。 阅读全文
posted @ 2017-06-13 19:57 TS_Hugh 阅读(262) 评论(0) 推荐(0)
摘要:这个东西,关于某个数的逆序对数为在他之前比他大的在他之后比他小的数的数目的和,所以删除之前先把这个减去就好了 人傻自带超大常数,中间由于内存池开小了所以运行错误。 阅读全文
posted @ 2017-06-13 16:13 TS_Hugh 阅读(278) 评论(0) 推荐(0)
摘要:人傻自带大常数 二分的可行性证明: 贴近他的正确答案不会被当作次优解删掉,因为,若二分在他右边发生,那么二分一定会把左边作为优解,左边同理,所以他一定是被扣掉的所以最后一个小于等于一定是正确答案 阅读全文
posted @ 2017-06-11 22:15 TS_Hugh 阅读(362) 评论(1) 推荐(0)