当我看到题目是5秒的时候,压根没有想树状数组,一直奔着模拟队列去想了,最后也没搞定,赛后看到大神的题解才恍然大悟,原来如此,题目中有明显的暗示,求前n项和,骤然感叹,自己太low...

果然还是要多做多研究啊,下面是代码,还有一处脑残错误在代码里...当时真的是找了好久才发现...

#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <queue>
#include <map>
#include <cstring>
using namespace std;
#define maxn 100005
int c[maxn],mark[maxn],n;
int lowbit(int k)
{
return k&(-k);
}
void update(int x,int v)///把树状数组的上界写了变量num,wa了无数次
{
while(x <= n)
{
c[x] += v;
x += lowbit(x);
}
}
int cal(int x)
{
int ans = ;
while(x > )
{
ans += c[x];
x -= lowbit(x);
}
return ans;
}
struct Node
{
int n,y;
friend bool operator < (Node a,Node b)
{
return a.y > b.y;
}
};
int main()
{
int t,top,num,x,y;
Node tmp;
char op[];
while(~scanf("%d",&t))
{
n = t;
top = ,num = ;
memset(c,,sizeof(c));
memset(mark,,sizeof(mark));
map<int,int> pos;
priority_queue<Node>que;
while(!que.empty()) que.pop();
while(t--)
{
scanf("%s",op);
if(op[] == 'a')
{
scanf("%d%d",&x,&y);
tmp.n = num,tmp.y = y;
que.push(tmp);
pos[x] = num;
mark[num] = ;
num++;
}
else if(op[] == 'p')
{
while(mark[top] == && top <= num) top++;
if(top > num)continue;
mark[top] = ;
update(top,-);
}
else if(op[] == 'l')
{
while(!que.empty() && mark[que.top().n] == )
{
que.pop();
}
if(!que.empty())
{
Node now;
now = que.top();
que.pop();
mark[now.n] = ;
update(now.n,-);
}
}
else if(op[] == 'c')
{
scanf("%d%d",&x,&y);
int m = pos[x];
if(pos[x] == ) continue;
if(mark[m] == ) continue;
int tot = m - + cal(pos[x]-);
printf("%d\n",tot);
if(tot > y)
{
mark[m] = ;
update(m,-);
}
}
}
}
return ;
}

FZU Problem 2029 买票问题(树状数组)的更多相关文章

  1. FZU 2029 买票问题 树状数组+STL

    题目链接:买票问题 思路:优先队列维护忍耐度最低的人在队首,leave操作ok. vis数组记录从1到n的编号的人们是不是在队列中,top维护队首的人的编号.pop操作搞定. 然后,check操作就是 ...

  2. AcWing 260. 买票 (树状数组+二分)打卡

    题目:https://www.acwing.com/problem/content/description/262/ 题意:给定一个队伍,每个人过来的时候可以插队,每个人会输入一个插入到哪个位置,但是 ...

  3. HDU 5293 Annoying problem 树形dp dfs序 树状数组 lca

    Annoying problem 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5293 Description Coco has a tree, w ...

  4. HDU 5293 Tree chain problem 树形dp+dfs序+树状数组+LCA

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5293 题意: 给你一些链,每条链都有自己的价值,求不相交不重合的链能够组成的最大价值. 题解: 树形 ...

  5. POJ 2029 (二维树状数组)题解

    思路: 大力出奇迹,先用二维树状数组存,然后暴力枚举 算某个矩形区域的值的示意图如下,代码在下面慢慢找... 代码: #include<cstdio> #include<map> ...

  6. HDU 5618:Jam's problem again(CDQ分治+树状数组处理三维偏序)

    http://acm.hdu.edu.cn/showproblem.php?pid=5618 题意:…… 思路:和NEUOJ那题一样的.重新写了遍理解了一下,算作处理三维偏序的模板了. #includ ...

  7. bzoj1878 [SDOI2009]HH的项链——树状数组

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1878 离线树状数组,巧妙的思路呢: 给每种项链记录一个最后出现的位置lst,根据项链最后出现 ...

  8. st表树状数组入门题单

    预备知识 st表(Sparse Table) 主要用来解决区间最值问题(RMQ)以及维护区间的各种性质(比如维护一段区间的最大公约数). 树状数组 单点更新 数组前缀和的查询 拓展:原数组是差分数组时 ...

  9. 树状数组+STL FZU 2029 买票问题

    题目传送门 题意:中文题面 分析:隔了一个考试周再做,开始没有什么思路,感觉能用线段树/树状数组维护,树状数组维护最小值不会去写线段树,结果超时.后来发现只要维护前缀几个人以及用优先队列/set维护最 ...

随机推荐

  1. jsp的九大天王

    JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1. ...

  2. URLEncode和URLDecoder作用

    一.基本原理 对于URL传递到后台,会对其中的有些字符进行编码,以下是我百度到的一些资料. 网页中的表单使用POST方法提交时,数据内容的类型是 application/x-www-form-urle ...

  3. opencv 一堆算法,图像处理等

    http://blog.csdn.net/wangzhebupt/article/category/1675453 数据挖掘十大经典实用算法及OpenCV算法 http://www.xuebuyuan ...

  4. 如何迅速成为Java高手[转]

    很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”.但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛! 要想学好Java,首先要知道Java的大致分类. ...

  5. redis第一篇--综述

    1 redis里边有数据库的概念.可分为1-255这些表.在存储或者查找的时候要指明. redis_sentinel 集群里边封装成了namespace这样的概念.与db是不一样的.

  6. updating the chroot

    Ubuntu may stop working after a Chrome OS update. If that's the case, update all the installed targe ...

  7. Linux入门学习教程:虚拟机体验之KVM篇

    本文中可以学习到的命令: 1. aptitude 是apt-get 不会产生垃圾的版本 2.       dpkg -L virtualbox 显示属于该包的文件 lsmod | grep kvmfi ...

  8. Git 版本管理基本操作

    Git是一个版本管理操作的工具 非常N,可以很智能的分布式管理, 本网站学习笔记 来自于廖雪峰老师的内容借鉴 安装 yum -y install git 本地设置全局 告知是谁提交代码 信息 # gi ...

  9. preg_replace 方法

    标红关键字 $text = "Sample sentence from KomunitasWeb, regex has become popular in web programming. ...

  10. TCPIP header

    tcp packet: tcp header: ip header: