摘要: //带删除操作的并查集 //题意:给你一个1~n的集合,有三种操作 // 1: 把p和q所在的集合合并 //2:把p移到q所在的集合中 //3:返回p所在集合中的元素个数和元素的和 //第二种操作不能直接把p的father改成q的father,因为这样p的子树也都换了爸爸 //对于每个元素,我们可以记录它所在的位置pos,合并的时候新申请一个pos,然后让这个元素的位置指向pos,再把... 阅读全文
posted @ 2018-02-23 21:54 whymhe 阅读(94) 评论(0) 推荐(0) 编辑
摘要: //给你一个序列,有两种操作: //1、给定x和y,将区间[x,y]内的数开方 //2、询问区间和 // // 因为一个longlong类型的数最多开6次方就变成了1,所以对于1操作,我们暴力修改, //对每个节点标记一个flag,表示当前节点掌控的区间有没有全变成1或0 (数据中有0) //如果root->flag==1,就return,因为再怎么改也都还是0或1,不变。 //... 阅读全文
posted @ 2018-02-23 21:46 whymhe 阅读(117) 评论(0) 推荐(0) 编辑
摘要: //在gss1的基础上加了修改操作,一样的做法,加一个modify函数就可以了 #include #include #include #include #include using namespace std; const int N=5e4+5; int n,m,type,l,r; int L,R,M,S; struct Tree { int l,r,mid; in... 阅读全文
posted @ 2018-02-23 21:39 whymhe 阅读(149) 评论(0) 推荐(0) 编辑
摘要: //题意:询问一段区间的最大子序列的值。 //做法:维护四个值:包含当前区间左端点的最大子区间LM,包含当前区间右端点的最大子区间RM、当前区间的最大子区间M, 当前区间的区间和S //tree[root].maxn=max(tree[root #include #include #include #include using namespace std; const int N=... 阅读全文
posted @ 2018-02-23 21:34 whymhe 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(排名定义为比当前数小的数的个数+1。若有多个相同的数,因输出最小的排名) 查询排名为x的数 求x的前驱(前驱定义为小于x,且最大的数) 输入输 阅读全文
posted @ 2018-02-23 21:26 whymhe 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目描述 凡凡开了一间宠物收养场。收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a<2^31),而他也给每个处在收养场的宠物一个特点值 阅读全文
posted @ 2018-02-23 21:24 whymhe 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 题目描述 OIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一 阅读全文
posted @ 2018-02-23 21:23 whymhe 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i<j的有序对。知道这概念后,他们就比赛 阅读全文
posted @ 2018-02-23 21:22 whymhe 阅读(312) 评论(0) 推荐(0) 编辑