bzoj 3932: [CQOI2015]任务查询系统 -- 主席树 / 暴力
3932: [CQOI2015]任务查询系统
Time Limit: 20 Sec Memory Limit: 512 MB
Description
Input
Output
Sample Input
1 2 6
2 3 3
1 3 2
3 3 4
3 1 3 2
1 1 3 4
2 2 4 3
Sample Output
8
11
HINT
Source
好不容易打完了一个主席树,然而有人说直接暴力就行。。What ?! T_T
好吧,就当我在练习主席树好了。。
思路1: 主席树
以时刻为下标,优先级为区间建主席树。对于在一个区间[l,r]内存在的任务,可差分处理,拆成两个点,在l处出现次数加1,在r+1处出现次数减1。
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
#define N 200010
#define M 10000010
inline ll read()
{
ll x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
ll sum[M];
int ls[M],rs[M],rt[M],w[M],lim,cnt,to[M];
inline void add(int l,int r,int x,int &y,int v)
{
y=++cnt;
w[y]=w[x]+(v>?:-);
sum[y]=sum[x]+v;
if(l==r) return;
ls[y]=ls[x];rs[y]=rs[x];
int mid=(l+r)>>;
if(abs(v)>mid) add(mid+,r,rs[x],rs[y],v);
else add(l,mid,ls[x],ls[y],v);
}
ll que(int t,int k)
{
int x=rt[t],l=,r=lim,mid;
if(w[x]<=k) return sum[x];
ll ans=;
while(l<r)
{
mid=(l+r)>>;
if(w[ls[x]]>=k)
{
x=ls[x];
r=mid;
}
else
{
k-=w[ls[x]];
ans+=sum[ls[x]];
x=rs[x];
l=mid+;
}
}
if(k) ans+=(ll)(l)*(ll)(k);
return ans;
}
struct qaz{int t,p;}q[N];
inline bool cmp(qaz a,qaz b){return a.t<b.t;}
int m,n,s,e,tp;
ll x,a,b,c,pre=,k;
int main()
{
m=read();n=read();
for(int i=;i<=m;i++)
{
s=read();e=read();tp=read();
lim=max(lim,tp);
q[i].t=s;q[i].p=tp;
q[i+m].t=e+;q[i+m].p=-tp;;
}
m<<=;
sort(q+,q+m+,cmp);
for(int i=;i<=m;i++) add(,lim,rt[i-],rt[i],q[i].p);
for(int i=m;i>;i--) if(q[i].t!=q[i+].t) to[q[i].t]=i;
for(int i=;i<=n;i++) if(!to[i]) to[i]=to[i-];
for(int i=;i<n;i++)
{
x=read();a=read();b=read();c=read();
k=(a*pre+b)%c;
k++;
pre=que(to[x],k);
printf("%lld\n",pre);
}
}
思路2:暴力。。。
#include<cstdio>
#include<algorithm>
#define M 100010
#define ll long long
int n,m,x,a,b,c,k;
ll pre=;
struct qaz{int s,e,p;}D[M];
bool cmp(qaz a,qaz b){return a.p<b.p;}
int main()
{
scanf("%d%d",&m,&n);
for(int i=;i<=m;i++) scanf("%d%d%d",&D[i].s,&D[i].e,&D[i].p);
std::sort(+D,+m+D,cmp);
while(n--)
{
scanf("%d%d%d%d",&x,&a,&b,&c);
k=+(a*pre%c+b)%c;pre=;
int d=;
for(int i=;i<=m&&d<k;i++)
if(D[i].s<=x&&D[i].e>=x){pre+=D[i].p;d++;}
printf("%lld\n",pre);
}
return ;
}
bzoj 3932: [CQOI2015]任务查询系统 -- 主席树 / 暴力的更多相关文章
- BZOJ 3932: [CQOI2015]任务查询系统 [主席树]
传送门 题意: 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行),其优先级为Pi 调度系统会经常向查询系统询问,第Xi ...
- BZOJ.3932.[CQOI2015]任务查询系统(主席树 差分)
题目链接 对于这一区间的操作,我们可以想到差分+前缀和(感觉也没什么别的了..). 同时对于本题我们能想到主席树,而主席树正是利用前一个节点建树的. 所以离散化.按时间排序,把操作拆成单点加和减即可. ...
- BZOJ 3932: [CQOI2015]任务查询系统 | 主席树练习题
题目: 洛谷也能评测 题解: De了好长时间BUG发现是自己sort前面有一行for没删,气死. 题目询问第x秒时候前k小的P值之和. 朴素想法: 我们可以把P值离散化,然后对于每个时刻建一棵定义域是 ...
- BZOJ 3932: [CQOI2015]任务查询系统 (主席树板题)
就是裸的主席树,差分之后排序插入主席树就行了. 注意主席树查询的时候叶子节点要特判,因为本身是有size的 还有要开longlong CODE #include <cctype> #inc ...
- 2018.06.30 BZOJ 3932: [CQOI2015]任务查询系统(主席树)
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MB Description 最近实验室正在为其管理的超级计算机编制一套任务管理 ...
- BZOJ3932: [CQOI2015]任务查询系统 主席树
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 4869 Solved: 1652[Submit][St ...
- [CQOI2015]任务查询系统 主席树
[CQOI2015]任务查询系统 LG传送门 以前还没见过主席树的这种写法. 考虑使用差分的思想处理每一个任务,然后所有的东西就都能顺理成章地用主席树维护了,查询的时候和平时的主席树有一点不同,详见代 ...
- 【BZOJ3932】[CQOI2015]任务查询系统 主席树
[BZOJ3932][CQOI2015]任务查询系统 Description 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si, ...
- bzoj 3932 [CQOI2015]任务查询系统(主席树)
Description 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分. 超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si ...
随机推荐
- Vue的keep-alive
Vue的keep-alive: 简答的做下理解 缓存!页面从某一个页面跳转到另一个页面的时候,需要进行一定的缓存,然后这个时候调用的钩子函数是actived,而在第一次加载的时候,created.ac ...
- G6踩坑日记
用G6去完成一整个图例的时候,当包裹它的容器满足不了包裹的需求时,我们就需要引入缩略图来解决问题了 缩略图使用方式很简单 引入插件配置就可以了 当我们使用多张图片进行绘图(G6支持使用图片进行构图,原 ...
- DIDM源码分析
DIDM源码分析 版本来源:GitHub上Opendaylight DIDM项目 参考资料来源:DIDM:Developer Guide 概述 DIDM是设备标识与驱动管理(Device Identi ...
- Android中的通信Volley
1. Volley简介 我们平时在开发Android应用的时候不可避免地都需要用到网络技术,而多数情况下应用程序都会使用HTTP协议来发送和接收网络数据.Android系统中主要提供了两种方式来进行H ...
- angular 最大字数限制
js可以通过onkeyup onkeydown判断当前节点字数. angular可以通过监听的方式: $scope.input = {//初始化,避免ng-model绑定取不到值 MaxBT:'', ...
- shell读取文件的每一行内容并输出【转】
写法一: #!/bin/bash while read line do echo $line done < file(待读取的文件) 写法二: #!/bin/bash cat file(待读取的 ...
- spring web 生命周期理解
spring web /bean 生命周期 反射注解 aop代理类生成 init servlet 初始化 load spring-context.xml load XmlParser 类解析对象 ...
- Nginx服务安全设置和参数调优
1.添加参数隐藏Nginx版本号 vim /application/nginx/conf/nginx.conf #http标签下添加 server_tokens off; #测试 [root@cobb ...
- Mybatis的初步使用
MyBatis 是当下最流行的持久层框架,也是ORM框架,本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google ...
- mysql root 密码恢复
1.停止mysql服务 service mysql stop 2.启动mysql时不启动授权表,跳过权限验证使用空密码登陆 mysqld_safe --skip-grant-tables & ...