摘要: x和y各用一个set保存切割点L[k] H[k]记录长度为k的线段有几个每添加一个切点,更新L[] H[],然后找到各找到最大值,相乘就是答案关键是学学set的使用23456789101112131415161718192021222324252627282930313233343536373839... 阅读全文
posted @ 2016-01-17 18:59 Septher 阅读(168) 评论(0) 推荐(0) 编辑
摘要: #include"cstdio"#include"queue"#include"cmath"#include"stack"#include"iostream"#include"algorithm"#include"cstring"#include"queue"#include"map"#includ... 阅读全文
posted @ 2016-01-17 18:55 Septher 阅读(221) 评论(0) 推荐(0) 编辑
摘要: WA了好几发。。。细节颇多,总之写线段树就要写好pushdown和pushup函数拍了300组数据才找到错误- -||新技能Get#include"cstdio"#include"queue"#include"cmath"#include"stack"#include"iostream"#inclu... 阅读全文
posted @ 2016-01-16 22:53 Septher 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 给一个1~n的序列,有三种操作:1.TOP x :把x移到序列首部2.Query x:询问x的位置3.Rank x:询问第k个位置的元素总而言之就是一个序列维护的问题,用splay tree可以解决。但是首先要解决的问题就是把题目中的操作转化为splay tree的基本操作1. Top x:可以理解... 阅读全文
posted @ 2016-01-15 22:24 Septher 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 模拟乘法有毒的一题,各种细节。。代码写得自己都不想看。。#include"cstdio"#include"queue"#include"cmath"#include"stack"#include"iostream"#include"algorithm"#include"cstring"#includ... 阅读全文
posted @ 2016-01-15 21:25 Septher 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 前后折腾了一天半时间才搞定。。从学习lazy到理解代码。。—_—||题意是说每次把第i大的数所在位置和第i个位置之间翻转,输出每个数在翻转前的位置。首先我们要想到,在splay tree 中,对于根节点来说,左子树的大小+1就是它在数组中的位置(从1开始标号),左子树的各元素也是在数列中位于根结点左... 阅读全文
posted @ 2016-01-14 13:10 Septher 阅读(287) 评论(0) 推荐(1) 编辑
摘要: 刚学习的splay tree。照着大神的代码敲了敲,理解了个大概很好用的数据结构,可以用来维护数列学习时建议先看看SBT,这样可以更好地理解“旋转”#include"cstdio"#include"queue"#include"cmath"#include"stack"#include"iostre... 阅读全文
posted @ 2016-01-13 14:25 Septher 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题意大概是说给定一个区间,求最大连续和完全不会,学习了半天大概可以理解为一个线段树点更新,区间询问的题目,但是构造和理解起来相对难许多。这里相同数的处理还是蛮有意思。用pre[i]记录i上一次出现的位置。所以update的时候跳过这个位置就好用离线算法,将询问区间按r排序后,从第一个至最后一个数依次... 阅读全文
posted @ 2016-01-11 19:17 Septher 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 每次都是在最后十几分钟才想出来。。并不能交了T_Tw是0的话merge(u,v)ans[i]就是i所在集合的元素个数#include"cstdio"#include"queue"#include"cmath"#include"stack"#include"iostream"#include"algo... 阅读全文
posted @ 2016-01-02 21:29 Septher 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 一开始直接无脑tarjan,回溯只能一层层往上走,太慢了,加了各种优化还是TLE后来了解到LCA倍增法(在线)。复杂度其实相比LCA转RMQ以及tarjan是要稍差一些,但是其中能同步维护的只有LCA倍增,很神奇的算法#include"cstdio"#include"queue"#include"c... 阅读全文
posted @ 2016-01-02 00:12 Septher 阅读(740) 评论(0) 推荐(0) 编辑