2015 多校联赛 ——HDU5372(树状数组)
0 0
0 3
0 1
5
0 1
0 0
1 1
0 1
0 0
0
0
0
Case #2:
0
1
0
2
有0,1两个操作,0 x代表添加从x 到 x + i(带表第i次添加)的线段,每次添加时问被其覆盖的线段有多少。
1 x代表删除第i次添加的。
思路:每一次添加后,求出小于x的左节点个数x1,小于等于y的右节点个数x2。 x2- x1即可
改变单个节点,所以树状数组更加合适
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
#define N 200050
#define mod 258280327 int le[N],re[N],lr[N],rr[N];
int oper[N],Left[N],Right[N],id[N];
int c[N];
int tot; int lowbit(int x)
{
return x&-x;
}
void update(int *c,int n,int k,int v)
{
while(k <= n)
{
c[k] += v;
k += lowbit(k);
}
} int query(int *c ,int k)
{
int ans = 0;
while(k > 0)
{
ans += c[k];
k -= lowbit(k);
}
return ans;
} int main()
{
//freopen("4.txt","r",stdin);
int cas=1,L=1,l,ans,nul,nur,n,Q;
while(scanf("%d",&n)!=EOF)
{
Q = nul = nur = 0;
for(int i = 1; i <= n; i++)
{
scanf("%d%d",&oper[i],&l);
if(oper[i] == 0)
{
id[++Q] = i;
le[i] = l;
re[i] = l+L;
Left[nul++] = le[i];
Right[nur++] = re[i];
L++;
}
else
{
le[i] = l;
}
}
printf("Case #%d:\n",cas++); memset(lr,0,sizeof(lr));
memset(rr,0,sizeof(rr)); sort(Left, Left + nul);
nul = unique(Left, Left + nul) - Left;
sort(Right, Right + nur);
nur = unique(Right, Right + nur) - Right; for(int i = 1; i <= n; i++)
{
if(oper[i] == 0)
{
int x1 = lower_bound(Left,Left+nul,le[i]) - Left + 1;
int x2 = lower_bound(Right,Right+nur,re[i]) - Right + 1;
ans = query(rr,x2)-query(lr,x1-1);
update(rr,nur,x2,1);
update(lr,nul,x1,1);
printf("%d\n",ans);
}
else
{
int v = id[le[i]];
int x1 = lower_bound(Left,Left+nul,le[v]) - Left + 1;
int x2 = lower_bound(Right,Right+nur,re[v]) - Right + 1;
update(lr,nul,x1,-1);
update(rr,nur,x2,-1);
}
}
}
return 0;
}
2015 多校联赛 ——HDU5372(树状数组)的更多相关文章
- Codevs 3286 火柴排队 2013年NOIP全国联赛提高组 树状数组,逆序对
题目:http://codevs.cn/problem/3286/ 3286 火柴排队 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : ...
- Luogu 2680 NOIP 2015 运输计划(树链剖分,LCA,树状数组,树的重心,二分,差分)
Luogu 2680 NOIP 2015 运输计划(树链剖分,LCA,树状数组,树的重心,二分,差分) Description L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之 ...
- 牛客多校第3场 J 思维+树状数组+二分
牛客多校第3场 J 思维+树状数组+二分 传送门:https://ac.nowcoder.com/acm/contest/883/J 题意: 给你q个询问,和一个队列容量f 询问有两种操作: 0.访问 ...
- HDU 5458 Stability(双连通分量+LCA+并查集+树状数组)(2015 ACM/ICPC Asia Regional Shenyang Online)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5458 Problem Description Given an undirected connecte ...
- 2015 CCPC-C-The Battle of Chibi (UESTC 1217)(动态规划+树状数组)
赛后当天学长就说了树状数组,结果在一个星期后赖床时才有了一点点思路…… 因为无法提交,不确定是否正确..嗯..有错希望指出,谢谢... 嗯..已经A了..提交地址http://acm.uestc.ed ...
- 2018牛客网暑期ACM多校训练营(第二场)J Farm(树状数组)
题意 n*m的农场有若干种不同种类作物,如果作物接受了不同种类的肥料就会枯萎.现在进行t次施肥,每次对一个矩形区域施某种类的肥料.问最后枯萎的作物是多少. 分析 作者:xseventh链接:https ...
- 2018牛客网暑期ACM多校训练营(第一场)J Different Integers(树状数组)
题意 给出一串数字以及q次查询,每次查询l,r],要求求出[1,l]和[r,n]的所有不相同的数字个数. 分析 先对数组进行倍增,变为两倍长,然后查询就变成一个完整的区间.离线处理,按r从小到大排序, ...
- Holedox Eating HDU - 4302 2012多校C 二分查找+树状数组/线段树优化
题意 一个长度$n<=1e5$的数轴,$m<=1e5$个操作 有两种一些操作 $0$ $x$ 在$x$放一个食物 $1$ 一个虫子去吃最近的食物,如果有两个食物一样近,不转变方向的去吃 ...
- 2018牛客网暑假ACM多校训练赛(第五场)H subseq 树状数组
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round5-H.html 题目传送门 - https://www.no ...
随机推荐
- 201621123062《Java程序设计》第一周学习总结
1.本周学习总结 关键词: 初步熟悉Java的基本组成.语言特点(简单性.结构中立性).运行环境.简单语法等. 关键概念之间的联系: 1.JVM是Java程序唯一认识的操作系统,其可执行文件为.cla ...
- 《javascript设计模式与开发实践》阅读笔记(16)—— 状态模式
状态模式 会区分事物内部的状态,事物内部状态的改变往往会带来事物的行为改变.比如电灯的开关是开还是关,在外界的表现就完全不同. 电灯例子 按照常规思路,实现一个电灯就是构造一个电灯类,然后指定一下它的 ...
- Linq 延迟加载
IList<Student> ssList = new List<Student>() { , StudentName = "John", } , , St ...
- 关于PHP7
目前一直使用php7也看了许多文档视频等,整理一下相关细节(仅为记录-),对于PHP7性能,如下图所示. * 在wordpress3.0.1中 php7比php5.6性能提升约3倍左右 新特性 一.变 ...
- 你考虑清楚了吗就决定用 Bootstrap ?
近年来,在前端项目中, Bootstrap 已经成为了一个非常受欢迎的工具. Bootstrap 的确有很多优点,然而,如果你的团队中恰好有一个专职的前端工程师.那我推荐你们不要使用 Bootstra ...
- Docker学习笔记 - Docker的基本概念
一.cs架构 Docker客户端:本地或远程 Docker服务端:守护进程Docker Daemon 二.基本概念 Docker镜像:打包阶段,层叠的只读文件系统,引导->root(ubuntu ...
- 新概念英语(1-127)A famous actoress(女演员)
A:Can you recognize that woman, Liz ?B:I think I can, Kate. It must be Karen Marsh, the actoress.A:I ...
- python入门(4)第一个python程序
python入门(4)第一个python程序 在交互式环境的提示符>>>下,直接输入代码,按回车,就可以立刻得到代码执行结果.现在,试试输入100+200,看看计算结果是不是300: ...
- vscode调试适配器已意外终止
出现这个错误了,找半天没找到办法.师兄支了一招: 把图中红圈部分删掉! 这是个旧的配置文件 ,你删掉它(反正一直报错误,也用不成了!).然后你调试一个文件,它会重新自动添加新的配置文件.
- golang-在gin中cookie跨域设置(配合ajax)
1.当我在golang中,在前后端分离的情况下使用cookies时发现,跨域没有被允许.代码如下: func AccessJsMiddleware() gin.HandlerFunc { return ...