随笔分类 -  数据结构--线段树

摘要:Who Gets the Most Candies? POJ - 2886 反素数 + 线段树 题意:有n个人围成一圈,游戏的起点是k,每个人持有一个数字(非编号)num,每次当前的人退出圈,下一个人是他左边的第num个(也就是说下一个退出的是k+num, k可以为负数,表示右边的第num个), 现 阅读全文
posted @ 2019-09-05 20:33 千摆渡Qbd 阅读(227) 评论(0) 推荐(0)
摘要:poj1151 https://blog.csdn.net/xianpingping/article/details/83032798 #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include 阅读全文
posted @ 2019-08-24 12:22 千摆渡Qbd 阅读(196) 评论(0) 推荐(0)
摘要:题意:给一颗树,两种操作,查询 i 结点的颜色,和将i结点和它的子树都染成另一种颜色 题解:dfs序构建线段树,对于x和其子树染色就是 l[x] 和 r[x]; dfs序线段树板子 阅读全文
posted @ 2019-08-11 13:31 千摆渡Qbd 阅读(164) 评论(0) 推荐(0)
摘要:题意:有n座房子,起初都是完好的,有m次操作,可以销毁i号房屋,可以重建最后一个销毁的房屋,可以查询i号房屋和几个房屋直接或间接相连。 题解:假设 1 2 3 4 5 6 7 8 中3 和7 已经摧毁,现在查询5,那么就是1 - 5中最靠右的毁坏的是3,5 - 8 中最靠左毁坏的的是7,那么答案就是 阅读全文
posted @ 2019-08-09 23:58 千摆渡Qbd 阅读(137) 评论(0) 推荐(0)
摘要:题意:散落一些点,有正负价值,框一个矩形,使得矩形中的价值总和最大 题解:先把y离散化,之后x排序后依次插入点,枚举每一种不同的x坐标作为上边界,枚举下边界,线段树更新最大子段和 阅读全文
posted @ 2019-08-08 10:32 千摆渡Qbd 阅读(239) 评论(0) 推荐(0)
摘要:GO 题意:给一个区间,有n次染色操作,每次将[x1, x2]染为c,求最后每种颜色各有多少线段可以看到。 #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #inclu 阅读全文
posted @ 2019-08-07 23:22 千摆渡Qbd 阅读(160) 评论(0) 推荐(0)
摘要:Mayor's posters Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 86160 Accepted: 24734 Description The citizens of Bytetown, AB, could not s 阅读全文
posted @ 2019-07-30 23:12 千摆渡Qbd 阅读(194) 评论(0) 推荐(0)
摘要:#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; const int MAXN = 1e5 + 10; LL a[MAXN],... 阅读全文
posted @ 2019-07-29 23:32 千摆渡Qbd 阅读(134) 评论(0) 推荐(0)
摘要:E - Serge and Dining Room(线段树) CodeForces - 1180E 题意:给出a 和 b 数组,a为各种食物的价格,b为一列排着队的小朋友拥有的钱,小朋友排队购买食物,每个人都买自己能买的起的最贵的食物,买不起就离开队伍。给出q次操作,操作1是修改食物的价格,操作2是 阅读全文
posted @ 2019-07-07 01:22 千摆渡Qbd 阅读(261) 评论(0) 推荐(0)
摘要:题意:有一块h*w的矩形广告板,要往上面贴广告;然后给n个1*wi的广告,要求把广告贴上去;而且要求广告要尽量往上贴并且尽量靠左;求第n个广告的所在的位置,不能贴则为-1;算法思想:利用线段树可以求区间的最大值;将位置即h用来建树(h<=n,大了没有意义);树中存储的为该位置还拥有的空间;若左子树的 阅读全文
posted @ 2019-03-09 00:42 千摆渡Qbd 阅读(109) 评论(0) 推荐(0)
摘要:建树 单点修改 区间查询 然后是线段数的区间修改以及相应的查询: 区间修改用到了lazy的思想,即当一个区间需要更新时,只递归更新到那一层结点,并将其下层结点所需要更新的信息保存在数组中,然后返回,只有当下次遍历到那个结点(更新过程中或查询过程中),才将那个结点的修改信息传递下去,这样就避免了区间修 阅读全文
posted @ 2019-03-08 22:56 千摆渡Qbd 阅读(237) 评论(0) 推荐(0)
摘要:传送门 N ladies attend the ball in the King's palace. Every lady can be described with three values: beauty, intellect and richness. King's Master of Cer 阅读全文
posted @ 2019-02-17 10:20 千摆渡Qbd 阅读(250) 评论(0) 推荐(0)
摘要:Tufurama CodeForces - 961E 题意:有一部电视剧有n季,每一季有ai集。问有多少对i,j存在第i季第j集也同时存在第j季第i集。 思路:核心问题还是统计对于第i季,你要统计第i行(存在多少数量,要大于i)。 线段树的维护相对而言比较暴力,树状数组的话,一开始全是1,一旦某个数 阅读全文
posted @ 2019-01-21 20:46 千摆渡Qbd 阅读(206) 评论(0) 推荐(0)
摘要:Xenia and Bit Operations CodeForces - 339D Xenia the beginner programmer has a sequence a, consisting of 2nnon-negative integers: a1, a2, ..., a2n. Xe 阅读全文
posted @ 2019-01-21 19:30 千摆渡Qbd 阅读(272) 评论(0) 推荐(0)