2015 多校联赛 ——HDU5372(树状数组)

时间:2023-02-23 23:22:38
Sample Input
3
0 0
0 3
0 1
5
0 1
0 0
1 1
0 1
0 0
 
Sample Output
Case #1:
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(树状数组)的更多相关文章

  1. Codevs 3286 火柴排队 2013年NOIP全国联赛提高组 树状数组&comma;逆序对

    题目:http://codevs.cn/problem/3286/ 3286 火柴排队  2013年NOIP全国联赛提高组  时间限制: 1 s   空间限制: 128000 KB   题目等级 : ...

  2. Luogu 2680 NOIP 2015 运输计划(树链剖分,LCA,树状数组,树的重心,二分,差分)

    Luogu 2680 NOIP 2015 运输计划(树链剖分,LCA,树状数组,树的重心,二分,差分) Description L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之 ...

  3. 牛客多校第3场 J 思维&plus;树状数组&plus;二分

    牛客多校第3场 J 思维+树状数组+二分 传送门:https://ac.nowcoder.com/acm/contest/883/J 题意: 给你q个询问,和一个队列容量f 询问有两种操作: 0.访问 ...

  4. HDU 5458 Stability(双连通分量&plus;LCA&plus;并查集&plus;树状数组)(2015 ACM&sol;ICPC Asia Regional Shenyang Online)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5458 Problem Description Given an undirected connecte ...

  5. 2015 CCPC-C-The Battle of Chibi &lpar;UESTC 1217&rpar;(动态规划&plus;树状数组)

    赛后当天学长就说了树状数组,结果在一个星期后赖床时才有了一点点思路…… 因为无法提交,不确定是否正确..嗯..有错希望指出,谢谢... 嗯..已经A了..提交地址http://acm.uestc.ed ...

  6. 2018牛客网暑期ACM多校训练营(第二场)J Farm(树状数组)

    题意 n*m的农场有若干种不同种类作物,如果作物接受了不同种类的肥料就会枯萎.现在进行t次施肥,每次对一个矩形区域施某种类的肥料.问最后枯萎的作物是多少. 分析 作者:xseventh链接:https ...

  7. 2018牛客网暑期ACM多校训练营(第一场)J Different Integers(树状数组)

    题意 给出一串数字以及q次查询,每次查询l,r],要求求出[1,l]和[r,n]的所有不相同的数字个数. 分析 先对数组进行倍增,变为两倍长,然后查询就变成一个完整的区间.离线处理,按r从小到大排序, ...

  8. Holedox Eating HDU - 4302 2012多校C 二分查找&plus;树状数组&sol;线段树优化

    题意 一个长度$n<=1e5$的数轴,$m<=1e5$个操作 有两种一些操作 $0$  $x$ 在$x$放一个食物 $1$ 一个虫子去吃最近的食物,如果有两个食物一样近,不转变方向的去吃 ...

  9. 2018牛客网暑假ACM多校训练赛(第五场)H subseq 树状数组

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round5-H.html 题目传送门 - https://www.no ...

随机推荐

  1. Windows平台网站图片服务器架构的演进&lbrack;转&rsqb;

    构建在Windows平台之上的网站,往往会被业内众多架构师认为很“保守”.很大部分原因,是由于微软技术体系的封闭和部分技术人员的短视造成 的.由于长期缺乏开源支持,所以只能“闭门造车”,这样很容易形成 ...

  2. chapter3&colon;Collaborative Filtering ---------A Programmer&&num;39&semi;s Guide to Data Mining

    Implicit rating and item based filtering Explicit rating: 用户明确的对item评分 Implicit rating:反之 明确评分所存在的问题 ...

  3. MySQL单表查询

    MySQL之单表查询 创建表 # 创建表 mysql> create table company.employee5( id int primary key AUTO_INCREMENT not ...

  4. P1387 最大正方形

    2018-08-16 https://www.luogu.org/problemnew/show/P1387 题意: 略. 4 4 0 0 1 1      把这个翻译成dp的形式   0 0 1 1 ...

  5. pm2操作总结

    PM2是一个node.js的进程管理器,(并且呢在应用程序的生产运行时自带负载均衡的这种操作,很厉害): -->  pm2主要解决的问题是kill node进程时无法正常停止的问题. 主要特征: ...

  6. 【教程】Tomcat 的catalina&period;out 日志按照自定义日期格式进行切割

    本文简单介绍在使用cronolog对tomcat的日志进行自定义日期格式的切割,方便日志的整理和遇到问题日志的排查! 安装cronolog 安装cronolog的方法网上有很多,这里也简单的介绍一下. ...

  7. 菜鸟学Java(十七)——Jboss瘦身

    大家在用Jboss的时候可能跟我一样,觉得Jboss启动实在太慢!比起Tomcat几乎秒启的速度,Jboss几乎让人无法忍受.加上本人电脑配置比较低,Jboss启动最快的时候也是一分多钟,慢的时候四分 ...

  8. 监听器的使用例子 ServletContextListener

    之前一直对监听知识有个概念,最近业务需要用到了才真正有点了解了监听器的好处. web项目的监听事件与监听器: ServletAPI中的6个事件类: ServletContextEvent:该类表示上下 ...

  9. 【POJ】3233 Matrix Power Series

    [算法]二分+矩阵快速幂 [题意]给定矩阵A和整数k,MOD,求A^0+A^1+A^2+...+A^k. [题解] 定义题目要求的答案为f(n),即: $$f_n=\sum_{i=0}^{n}A^i$ ...

  10. 【UVa】Headmaster&&num;39&semi;s Headache(状压dp)

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...