bzoj 4695 最假女选手 吉利线段树】的更多相关文章

最假女选手 Time Limit: 50 Sec  Memory Limit: 128 MBSubmit: 480  Solved: 118[Submit][Status][Discuss] Description 在刚刚结束的水题嘉年华的压轴节目放水大赛中,wyywyy如愿以偿的得到了最假女选手的奖项.但是作为主办人的 C_SUNSHINE为了证明wyywyy确实在放水,决定出一道基础题考察wyywyy的姿势水平.给定一个长度为 N序列,编号 从1 到 N.要求支持下面几种操作: 1.给一个区…
题目链接 区间取\(\max,\ \min\)并维护区间和是普通线段树无法处理的. 对于操作二,维护区间最小值\(mn\).最小值个数\(t\).严格次小值\(se\). 当\(mn\geq x\)时,不需要改变,return:\(se>x>mn\)时,\(sum=sum+(x-mn)*t\),打上区间\(\max\)标记: 当\(x\geq se>mn\)时,不会做,继续递归分别处理两个子区间,直到遇到前两种情况. 操作三同理,维护最大值.最大值个数.次大值. 复杂度\(O(m\log…
题意: 给定一个长度为 N序列,编号从1 到 N.要求支持下面几种操作: 1.给一个区间[L,R] 加上一个数x  2.把一个区间[L,R] 里小于x 的数变成x  3.把一个区间[L,R] 里大于x 的数变成x  4.求区间[L,R] 的和 5.求区间[L,R] 的最大值 6.求区间[L,R] 的最小值   分析: 你听说过Segment Tree Beats么? 快去看一看吧.这题居然才只有六个操作,真的是重口难调啊. 思想还是不难的,这里就不粘课件了. 由于这题拥有着比较玄学的空间限制和比…
算导: 核算法 给每种操作一个摊还代价(是手工定义的),给数据结构中某些东西一个“信用”值(不是手动定义的,是被动产生的),摊还代价等于实际代价+信用变化量. 当实际代价小于摊还代价时,增加等于差额的信用: 当实际代价大于摊还代价时,减少等于差额的信用. 显然总摊还代价等于总实际代价+总信用变化量. 如果信用变化量始终>=0,那么总摊还代价给出总实际代价的一个上界:设法证明信用变化量始终>=0 势能法 对整个数据结构定义一个“势”函数$\Phi$ 定义一个操作的摊还代价为实际代价加上势的变化量…
……一道丧病线段树膜板题…… 被常数卡的死去活来……QAQ 学到了些奇技淫巧:把取min标记 和 区间最小值 合并 可以快很多…… #include <bits/stdc++.h> #define lc(t) ((t) << 1) #define rc(t) (((t) << 1) | 1) #define N 2000010 #define INF 1000000000 #define LL long long template <class T> inl…
传送门 线段树好题 支持区间加,区间取min" role="presentation" style="position: relative;">minmin和max" role="presentation" style="position: relative;">maxmax. 维护区间和,区间最大值,区间最小值. 这题可以类比另外一道线段树 维护区间最大,次大,最小,次小,和. 每次修改的时候…
ps:好久没更博啦……这几天连着有模拟赛,等初赛前后休息的时候来疯狂补坑吧……顺便补一下前面的数论啥的? 题解: mdzz我场上写了个15分暴力长度跟标算差不多... 线段树大法好啊!这题听说很多人做过,是吉利线段树的模板题. 为什么要叫吉利线段树呢?当然是因为大名鼎鼎的吉老(si)师(ji)啦~~Orzjry 感兴趣的同学可以搜吉老师的2016年国家集训队论文——<区间最值操作与历史最值问题> 当然吉老师有个通(jiu)俗(tiao)易(ke)懂(lian)的课件--->Segment…
[BZOJ 3123] [SDOI 2013]森林(可持久化线段树+启发式合并) 题面 给出一个n个节点m条边的森林,每个节点都有一个权值.有两种操作: Q x y k查询点x到点y路径上所有的权值中,第k小的权值是多少.此操作保证点x和点y连通,同时这两个节点的路径上至少有k个点. L x y在点x和点y之间连接一条边.保证完成此操作后,仍然是一片森林. 分析 用并查集维护连通性以及每个联通块的大小 用主席树维护路径上第k大,第x棵主席树维护的是节点x到根的链上权值的出现情况,类似[BZOJ2…
BZOJ题目传送门 终于体会到初步掌握势能分析思想的重要性了. 一开始看题,感觉套路还是很一般啊qwq.直接在线段树上维护最大值和最小值,每次递归更新的时候,如果不能完全覆盖就暴力递归下去.挺好写的欸 鉴于上次写冒险常数太大的经历,蒟蒻这次来个码风奇特的指针线段树 #include<bits/stdc++.h> #define RG register #define R RG int #define G if(++ip==ie)fread(ip=buf,1,N,stdin) #define p…
题目描述 给定一个长度为 N 序列,编号从 1 到 N .要求支持下面几种操作:1.给一个区间[L,R] 加上一个数x 2.把一个区间[L,R] 里小于x 的数变成x 3.把一个区间[L,R] 里大于x 的数变成x 4.求区间[L,R] 的和5.求区间[L,R] 的最大值6.求区间[L,R] 的最小值 输入 第一行一个整数 N 表示序列长度. 第二行 N 个整数 Ai 表示初始序列. 第三行一个整数 M 表示操作个数. 接下来 M 行,每行三或四个整数,第一个整数 Tp 表示操作类型,接下来 L…