BZOJ3932(主席树上二分+差分
按时间作为主席树的版本,每个版本的主席树都是一个权值线段树。
差分消去时间影响
对于当前时间版本的主席树查询前K大即可。
树上二分时结束后切记判定l==r的状态(易错
l==r叶子节点可能存在多个值(值大小为sum/siz )
用I64dOLE了好久 。。 。。。。 。 。。 。 。 。 。 。 。 。 。。 。
用bit/stdc++.h CE.....
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N = ;
const int LOGN = ;
const int maxn = N*LOGN;
#define lson son[rt][0]
#define rson son[rt][1]
#define un(x) (x>0?x:-x)
struct node{
int pos,val;
};
node cf[N<<];
ll sum[maxn],siz[maxn];
int son[maxn][],root[N],id[N];
void pushup(int rt)
{
siz[rt] = siz[lson]+siz[rson];
sum[rt] = sum[lson]+sum[rson];
}
int tot = ;
void update(int x,int& y,int l,int r,int p)
{
y = ++tot;
if(l==r)
{
if(p>) siz[y] = siz[x]+;
else siz[y] = siz[x]-;
sum[y] = sum[x]+p;
return ;
}
son[y][] = son[x][];
son[y][] = son[x][];
int m = (r+l)>>;
if(un(p)<=m) update(son[x][],son[y][],l,m,p);
else update(son[x][],son[y][],m+,r,p);
pushup(y); }
ll bfind(int l,int r,int rt,int k)
{
//cout<<"size:: "<<siz[rt]<<sum[rt]<<endl;
if(siz[rt]<=k) return sum[rt];
ll ans = ;
while(l<r)
{
int m = (r+l)>>;
if(k<siz[lson])
{
r = m;
rt = lson;
}
else{
l = m+;
k -= siz[lson];
ans+=sum[lson];
rt = rson;
}
}
if(k&&siz[rt]>) ans+=sum[rt]/siz[rt]*min(k,siz[rt]);
return ans;
}
bool cmp(node a,node b)
{
return a.pos<b.pos;
}
int main()
{
int n,m;
scanf("%d%d",&m,&n);
int s,e,p;
int lim = ;
int cnt = ;
for(int i=;i<m;i++){
scanf("%d%d%d",&s,&e,&p);
cf[++cnt] = (node){s,p};
cf[++cnt] = (node){e+,-p};
lim = max(lim,p);
}
sort(cf+,cf+cnt+,cmp);
ll pre = ;
for(int i=;i<=cnt;i++)update(root[i-],root[i],,lim,cf[i].val);
for(int i=cnt;i>=;i--){
if(cf[i].pos!=cf[i+].pos) id[cf[i].pos] = i;
}
for(int i=;i<=n;i++){
if(id[i]==)id[i] = id[i-];
//cout<<id[i]<<endl;
}
int x,a,b,c,k;
for(int i=;i<n;i++)
{
scanf("%d%d%d%d",&x,&a,&b,&c);
k = (a*pre+b)%c+;
pre = bfind(,lim,root[id[x]],k);
//cout<<x<<" "<<id[x]<<" ";
printf("%lld\n",pre);
}
return ;
}
AC代码
BZOJ3932(主席树上二分+差分的更多相关文章
- 【主席树上二分】bzoj5361: [Lydsy1805月赛]对称数
随机化选讲例题 题目大意 小 Q 认为,偶数具有对称美,而奇数则没有.给定一棵 n 个点的树,任意两点之间有且仅有一条直接或间接路径.这些点编号依次为 1 到 n,其中编号为 i 的点上有一个正整数 ...
- BZOJ 1926: [Sdoi2010]粟粟的书架(主席树,二分答案)
BZOJ 1926: [Sdoi2010]粟粟的书架(主席树,二分答案) 题意 : 给你一个长为\(R\)宽为\(C\)的矩阵,第\(i\)行\(j\)列的数为\(P_{i,j}\). 有\(m\)次 ...
- LOJ 2551 「JSOI2018」列队——主席树+二分
题目:https://loj.ac/problem/2551 答案是排序后依次走到 K ~ K+r-l . 想维护一个区间排序后的结果,使得可以在上面二分.求和:二分可以知道贡献是正还是负. 于是想用 ...
- uoj#402. 【CTSC2018】混合果汁(主席树+二分)
传送门 我们先把果汁按照美味度排序,枚举\(d\),那么肯定是贪心的选择美味程度不小于\(d\)的且最便宜的果汁 发现\(d\)可以二分,那么在主席树上二分就可以了 据说还有整体二分的大佬然而我并不会 ...
- 计蒜客 38229.Distance on the tree-1.树链剖分(边权)+可持久化线段树(区间小于等于k的数的个数)+离散化+离线处理 or 2.树上第k大(主席树)+二分+离散化+在线查询 (The Preliminary Contest for ICPC China Nanchang National Invitational 南昌邀请赛网络赛)
Distance on the tree DSM(Data Structure Master) once learned about tree when he was preparing for NO ...
- [BZOJ3932][CQOI2015]任务查询系统(差分+主席树)
题面 分析 对于一个区间修改(s,e,v),我们可以将它差分,这样就变成了单点修改s和e+1(s插入,t+1删除) 我们用主席树维护差分数组的前缀和,第i棵主席树维护区间[1,i]之间的所有差分值 那 ...
- bzoj 2653: middle (主席树+二分)
2653: middle Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 2522 Solved: 1434[Submit][Status][Disc ...
- LOJ 3059 「HNOI2019」序列——贪心与前后缀的思路+线段树上二分
题目:https://loj.ac/problem/3059 一段 A 选一个 B 的话, B 是这段 A 的平均值.因为 \( \sum (A_i-B)^2 = \sum A_i^2 - 2*B \ ...
- P3066 [USACO12DEC]逃跑的BarnRunning Away From (树上二分)
题意 给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于l的点有多少个. 树上二分.这个做法还是基于树上差分的,也就是对于每一个点uu,我们要找到它向上跳LL的长度最高能够跳到的祖先.(当 ...
随机推荐
- MCP|ZCM|Investigating Lactococcus lactis MG1363 response to phage p2 infection at the proteome level(研究乳酸乳球菌MG1363在噬菌体p2感染后的蛋白质组水平变化)
一.概述: 噬菌体是特异性感染并最终杀死其细菌宿主的病毒.他们在所有生态系统中发挥着关键的生态作用.尽管经过了几十年的研究,噬菌体与细菌宿主之间的相互作用仍然知之甚少.本研究使用无标记定量蛋白质组学来 ...
- SQL语法:MySQL系列之四
一.SQL语言的简介和规范 是一种特定目的程序语言,用于管理关系数据库管理系统(RDBMS),或在关系流数据管理系统(RDSMS)中进行流处理. 20世纪70年代,IBM开发出SQL,用于DB2 ...
- Jmeter_前端RSA加密下的登陆模拟_引用js文件实现(转)
在一次项目实战中,前端登录使用了RSA加密,使用LoadRunner压测的第一步,就是模拟用户登录,可惜loadRunner11并不能录制前端的加密过程,并且安装的LR是基于C语言版,网络上关于RSA ...
- vue中v-bind绑定样式
近来发现v-bind绑定样式的两个好玩的栗子 可以直接绑定到一个样式对象,让模板更清晰: <div id="app"> <div v-bind:style=&qu ...
- ng2学习--pipe使用
We use our custom pipe the same way we use built-in pipes.(自定义Pipe和API里自带的Pipe使用方式一致) We must includ ...
- BZOJ 4260 Codechef REBXOR 01trie
好题...开阔思路 把每个前缀异或和依次插入$01trie$,插之前找一个最优的(就是从高位向低位贪心,尽量走相反方向)看看能不能更新答案,此时相当于找到了区间右端点不超过某个点$r$的最大或和$f[ ...
- 牛客练习赛41D(思维转化)
AC通道 要点 思路:题解中将所求进行转化\[max\{相似度\} = max\{M-不相似度\} = M-min\{不相似度\}\]因此转化为求某01串T与所给众S串的最小不相似度,而最终答案是选取 ...
- JD孔_20160920
1. 2. 3.
- windows cmd 透明化
1 . 属性 -- 颜色 --不透明度 2 . 快捷键 : Ctrl+Shift+加号/减号 3. cmd 下快速查找文件 : dir a.txt /S
- (转)linux内核参数注释与优化
linux内核参数注释与优化 原文:http://blog.51cto.com/yangrong/1321594 http://oldboy.blog.51.cto.com/2561410/13364 ...