线段树
sillyf
这个作者很懒,什么都没留下…
展开
-
BZOJ 1798: [Ahoi2009]Seq 维护序列seq
一眼就能看出来用线段树做 只是我太菜了,因为有两个标记调了好久才出样例,一次就过还是很开心的 #include #define ls (x<<1) #define rs ((x<<1)+1) #define mid ((l+r)>>1) #define C (c=getchar()) #define LL long long using namespace std; struct T{ L原创 2017-04-03 18:00:42 · 324 阅读 · 1 评论 -
BZOJ 2957: 楼房重建 [分块][线段树]
题面 模型:维护斜率的最长上升序列原创 2017-09-26 21:38:01 · 316 阅读 · 0 评论 -
51nod 1494 选举拉票&&cf458C
中文题面 考虑把所有人的票分别从大到小排序之后可以看做n条线段 枚举自己的票数为i,所以每条线段超过i的部分必须收买,如果还不够就到前面挑不够的 0≤b[i]≤1040 \leq b[i] \leq 10^4求前k小想到权值线段树(应该是类似的东西)#include<cstdio> #include<algorithm> #include<vector> #define N 100000原创 2017-10-18 17:57:16 · 390 阅读 · 0 评论 -
51nod 1199 Money out of Thin Air[线段树]
题面 把树按dfs序搞成序列然后直接线段树维护就好了#include<cstdio> #include<vector> #define N 50000 #define LL long long using namespace std;vector<int>e[N+5]; int n,m,fa[N+5],xl[N+5],size,L[N+5],R[N+5]; LL sum[N*4+5],lazy[N原创 2017-10-24 13:34:12 · 204 阅读 · 0 评论 -
51nod 1611 金牌赛事&&cf115E [线段树]
感觉思路很清晰 想到dp,按比赛所需的道路右端点排序 f[i]表示举办第i场比赛为止能获得的最大利润 然后按顺序把每场比赛的收益加入线段树求个最值即可维护最大获利#include<cstdio> #include<algorithm> #define N 200000 #define LL long long using namespace std;struct node{ int l原创 2017-10-24 21:17:47 · 418 阅读 · 0 评论 -
51nod 1461 稳定桌[线段树]
跟风打道题 枚举最长的长度,那么当前的长度全部不砍肯定最优 长度比这个大的一定要砍,可以直接求和 如果数量没到总共的一半,就从比当前长度小的桌腿里砍掉一些来满足题设,可以用线段树维护 (用堆也行,移步jz大佬的博客)#include<cstdio> #include<algorithm> #include<vector> #define N 100000 #define LL long lo原创 2017-10-25 21:06:13 · 387 阅读 · 0 评论 -
BZOJ 4552: [Tjoi2016&Heoi2016]排序 [二分][线段树]
题意: 给定一个数列{ana_n},然后进行mm次操作,每次操作是对一个区间进行升序或降序排序,要求所有操作后位置qq上的数解题报告: 不会树套树,只能膜线段树题解原创 2017-12-20 19:56:48 · 308 阅读 · 0 评论