博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【bzoj3932】 CQOI2015—任务查询系统
阅读量:5077 次
发布时间:2019-06-12

本文共 1035 字,大约阅读时间需要 3 分钟。

 (题目链接)

题意

  给出$m$个区间,每个区间有一个权值,$n$组询问,每次询问在位置$x$权值前$k$大的区间的权值和。

Solution

  扫描线搞一下然后主席树维护即可。

细节

  查询的时候注意叶子节的情况

代码

// bzoj3932#include
#include
#include
#include
#include
#include
#define LL long long#define lim 10000000#define inf 2147483640#define Pi acos(-1.0)#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout)using namespace std;const int maxn=200010;int n,m,sz,rt[maxn];struct data { int pos,w,op; friend bool operator < (data a,data b) {return a.pos
>1; if (val<=mid) insert(tr[u][0],tr[v][0],l,mid,val,op),tr[u][1]=tr[v][1]; else insert(tr[u][1],tr[v][1],mid+1,r,val,op),tr[u][0]=tr[v][0]; tr[u].s=tr[tr[u][0]].s+tr[tr[u][1]].s; tr[u].val=tr[tr[u][0]].val+tr[tr[u][1]].val; } LL query(int k,int l,int r,int x) { if (!k) return 0; if (l==r) return (LL)l*x; int mid=(l+r)>>1,c=tr[tr[k][0]].s; if (x==c) return tr[tr[k][0]].val; else if (x

 

转载于:https://www.cnblogs.com/MashiroSky/p/6489607.html

你可能感兴趣的文章
Jquery ui widget开发
查看>>
关于indexOf的使用
查看>>
英语单词
查看>>
Mongo自动备份
查看>>
cer证书签名验证
查看>>
新手Python第一天(接触)
查看>>
【bzoj1029】[JSOI2007]建筑抢修
查看>>
synchronized
查看>>
codevs 1080 线段树练习
查看>>
[No0000195]NoSQL还是SQL?这一篇讲清楚
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
QML学习笔记之一
查看>>
Window 的引导过程
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>