![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
文章平均质量分 52
路人黑的纸巾
高一SD
展开
-
【JZOJ3743】【BZOJ5158】Alice and Bob
descriptionanalysis可以贪心还原出原xxx序列,且xxx是nnn的排列;易知aaa由是连续若干段的单调不递减区间拼起来而成而且每一段区间内差值至多为111,大概像这样1,1,2,2,2,3,...x,1,1,1,2,...,y,1,...1,1,2,2,2,3,...x,1,1,1,2,...,y,1,...1,1,2,2,2,3,...x,1,1,1,2,.....原创 2020-01-03 21:36:04 · 742 阅读 · 0 评论 -
【JZOJ6285】飘雪圣域
descriptionanalysis从求联通块出发根本没做法,于是考虑连通块里面的边对于一个询问[l,r][l,r][l,r],一条边的左端点≥l≥l≥l且右端点≤r≤r≤r才在这个区间的点之间于是对于边和询问排序,依次把边加入树状数组,然后查询当前询问区间里的边条数就知道了联通块个数code#pragma GCC optimize("O3")#pragma ...原创 2019-11-02 08:53:52 · 176 阅读 · 0 评论 -
【JZOJ6388】小w的作业
descriptionanalysis二分一个角度,首先假设该弧度角θ∈[π2,π]\theta \in[{\pi \over 2},\pi]θ∈[2π,π],要找的直线斜率k∈(−∞,tanθ]k\in(-∞,\tan\theta]k∈(−∞,tanθ]要找这种直线,两个点(xi,yi),(xj,yj)(x_i,y_i),(x_j,y_j)(xi,yi),(xj,yj...原创 2019-10-27 08:38:38 · 301 阅读 · 0 评论 -
求逆序对的两种方法
归并排序归排求逆序对用到了二分的思想设当前归并排序讲合并的区间为[l,r][l,r][l,r]由于归排二分,所以[l,mid][l,mid][l,mid]和[mid+1,r][mid+1,r][mid+1,r]两段区间都分别已经排好了序在排序过程中,如果a[i]>a[j]a[i]>a[j]a[i]>a[j],那么a[i+1]a[i+1]a[i+1]到a[m...原创 2018-12-28 21:02:25 · 538 阅读 · 0 评论 -
树状数组小结
单点修改&区间查询最普通的树状数组实现用lowbitlowbitlowbit的优秀性质原理很简单code#pragma GCC optimize("O3")#pragma G++ optimize("O3")#include<stdio.h>#include<string.h>#include<algorithm>#defin原创 2019-03-01 21:16:31 · 95 阅读 · 0 评论 -
【JZOJ3240】Seat
description你和你的伙伴正在筹备村里的万人宴,由于村子是长条形的,所有宾客将坐在一张超级长桌的一侧就餐。正当筹备工作进行得火热朝天,你和你的伙伴发现一个严重问题:由于缺乏沟通,你俩各自制作了一张座位图发给各位宾客。你必须计算出有多少对宾客,他们在两份座位图中次序安排是不同的。例如,对以下两份座位图:A B C D EB A D E C有三对宾客(A,B),(C,D)和(C,E...原创 2019-07-01 12:43:36 · 167 阅读 · 0 评论 -
【JZOJ5431】序列操作
description一开始有n个非负整数hi,接下来会进行m次操作,第i次操作给出一个数c[i],要求你选出c[i]个大于零的数并将它们减去1。问最多可以进行多少轮操作后无法操作(即没有c[i]个大于零的数)analysis明显每次都减去最大的那几个,减不了了就GGGGGG那么先把aaa排序了,考虑怎么一次次减掉aaa最前面的几个但是直接减最前面的次序会乱掉,比如5,5...原创 2019-09-23 22:41:18 · 136 阅读 · 0 评论