
树状数组
文章平均质量分 70
nlj1999
这个作者很懒,什么都没留下…
展开
-
1818: [Cqoi2010]内部白点
题目真坑。。。。。。。。明显不可能会出现-1的情况嘛离散化+树状数组x,y坐标分别排序,扫一遍,找出所有的横线和竖线,统计出横线、竖线上端点、竖线下端点。对统计出的数据进行排序,关键字为y,当y值相同时,下端点优先于横线优先于上端点。从上往下依次扫描,扫到横线时统计横线左右端点内(开区间)的竖线数量,扫到竖线上端点时竖线数量+1,扫到下端点时竖线数量-1(上边的优先级因此确立)。原创 2015-12-10 14:58:22 · 605 阅读 · 0 评论 -
APIO2015 UOJ 110-112
#110. 【APIO2015】Bali Sculptures很像NOI2014的起床困难综合征首先每一位拆开来做从高位到低位贪心,看每一位能不能为0NN#include#include#include#includeusing namespace std;const int inf=1e9;#define rep(i,l,r) for(int i=l;i<=r原创 2016-04-27 19:37:45 · 682 阅读 · 0 评论 -
BZOJ 2727: [HNOI2012]双十字
如果你有一道题一上午都没调出来那么一定是你取模取错了QAQ下意识地对(1e9)+7取了模,现在才发现是(1e9)+9这个首先推一下公式,然后开三个树状数组维护一下就好了#include#include#include#includeusing namespace std;const int N=1200000+5;typedef long long ll;const原创 2016-04-07 11:43:46 · 471 阅读 · 0 评论 -
CODEVS 1954 线段树
jxr你过来我保证不打死你!!!故事是这样的……今天中午发现jxr早上发了一道题过来……嗯,就是这题了。一看到这题,我就想起了wty大爷的箴言。论JB(划掉)偏题的危害。这题简直就是数据结构10合1啊!!!题目很良心(丧病),给了测试点的编号作为输入。于是我们可以借鉴TKD的写法,写10个程序。。。。。(其实不到吧)首先看第一个点,暴力没跑了。第二个,只有查询?原创 2016-02-24 16:11:19 · 784 阅读 · 1 评论 -
bzoj 1969: [Ahoi2005]LANE 航线规划
好久不写图论题好虚啊,m打成n RE了3次QAQ人生耻辱啊。首先假设没有删边,显然答案是两点间桥的数量。于是求边双连通分量,缩点缩边,只留下桥。所以剩下的肯定是树啦。于是询问变成了求树上两点间距离,求下LCA就可以直接做了。但是还有删边操作。删边肯定不好处理。反过来改成加边操作。两点与LCA形成了一个边双联通分量,于是把他们缩起来。直接缩不可取,考虑缩点的后果是原创 2016-03-15 10:08:39 · 993 阅读 · 0 评论 -
SPOJ NKTEAM - Team Selection
05年的论文题问题其实可以抽象成在XOY坐标系中,每个点分别向上和向右引一条线扩展出一个无限大的区域,求没有被其他区域包含的点的个数白书上有个差不读多的题(那个题好像少一维,所以可以直接做),不过那个题的坐标范围比较大(10^9),但是其实只需要大小关系,于是离散化一下答案不变。于是可以用树状数组维护前缀最小值(当然你用线段树我也没意见),如果x意义上的前缀最小值大于当前点的y值,则当原创 2016-03-09 14:53:42 · 699 阅读 · 0 评论 -
POJ2828 Buy Tickets
首先让我们感谢昨天BestCoder的出题人Claris,以及各位Hacker,让我这个帮老妈刷票刷了半个小时结果,19:40多才开始打得水笔A了3道题,本来只有rank30左右的,结果硬生生地被hack到了rank10,结果rating还是只涨了100多(话说我某次rank30多也是涨100多啊),下一场还是不能打DIV1,不过没关系,反正DIV2都AK不了还做毛DIV1啊。然后呢,继续填坑原创 2016-02-14 13:17:01 · 352 阅读 · 0 评论 -
ZOJ 2112 Dynamic Rankings
人生第二发树套树。话说原来树套树跑得比整体二分快啊,真不科学。整体二分260MS,树套树130MS,快了一倍。这题嘛就树状数组套主席树。一开始建一颗空的主席树,以后的树都在这基础上搞。于是有两套主席树。第一套是原数组的,依次在前一颗树上建。第二套是修改出来的主席树,套上树状数组,树状数组修改的时候在之前的树上建。然后询问的时候要将两套主席树的影响都加上,于是就差不多原创 2016-01-18 16:22:18 · 263 阅读 · 0 评论 -
1935: [Shoi2007]Tree 园丁的烦恼
离线处理+离散化+BIT果然读入优化这种东西还是不能懒,没判断负数WA两次TAT。明明xi,yi都是非负数啊,为毛矩阵坐标就可以是负数了,还能不能好好玩了。#include#include#include#includeusing namespace std;const int N=500000+5;inline int read(){ char ch;int x=0,f原创 2015-12-18 16:37:54 · 605 阅读 · 0 评论 -
3192: [JLOI2013]删除物品
用BIT模拟一下过程就好了#include#include#include#includeusing namespace std;const int N=100000+5;int d[N],n,m;struct Data{ int x,pos; bool operator<(const Data &rhs)const{ return x>rhs.x; }}a[N];原创 2015-12-17 16:45:07 · 299 阅读 · 0 评论 -
1103: [POI2007]大都市meg
说实话第一眼看成树剖了。话说树剖+BIT应该能过吧。。。。。吧。。。。想想还是算了,于是祭出了DFS序(不是欧拉序列)。以l[i]记录开始访问一个节点的时间,以r[i]记录退出一个节点的时间,于是以i为根的子树的所有l和r的值都在l[i]和r[i]之间了。然后就可以乱搞(雾)求树上前缀和了(话说这个应不应该叫树上前缀和啊),然后用BIT维护树上前缀和。#include#inc原创 2015-12-15 20:59:32 · 254 阅读 · 0 评论 -
1452: [JSOI2009]Count
c直接 个权值建一个二维树状数组。然后维护就好了。。。。。。。不知道C改大一点会变成什么毒瘤题,反正我是不会做的。#include#include#includeusing namespace std;int d[305][305][105],mat[305][305],n,m;inline int lowbit(int x){return x&-x;}void add原创 2015-12-14 21:21:35 · 387 阅读 · 0 评论 -
2743: [HEOI2012]采花
还想和上题一样用莫队水过,结果。。。。。。炸了。还是老老实实用树状数组才是正解。#include#include#include#includeusing namespace std;const int N=1000000+10;struct Query{ int l,r,id; bool operator<(const Query &rhs)const{ return原创 2015-12-14 16:39:24 · 366 阅读 · 0 评论 -
Tsinsen A1333. 矩阵乘法(梁 盾)
智商康复计划。。。。。。。。#include#include#include#define rep(i,l,r) for(int i=l;i<=r;i++)#define per(i,r,l) for(int i=r;i>=l;i--)#define mmt(a,v) memset(a,v,sizeof(a));using namespace std;const int N=50原创 2016-05-11 14:12:06 · 695 阅读 · 0 评论