![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
bit
文章平均质量分 52
Clove_unique
All that you have lost can be won back bit by bit as long as you wish for it.
展开
-
【IOI2001】【poj1195】Mobile phones(二维树状数组)
不断WA地苦恼。。。原创 2016-02-12 20:05:03 · 1096 阅读 · 0 评论 -
[BZOJ2527][Poi2011]Meteors(整体二分+bit)
题目描述传送门题解整体二分最少是哪个流星雨 每一次处理(l,mid)之间的修改然后再判断每一个询问是否满足 线段树的常数太大了…必须用bit才能过…代码#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;#define LL l原创 2017-01-09 21:59:41 · 510 阅读 · 0 评论 -
[BZOJ2738]矩阵乘法(整体二分+二维bit)
题目描述传送门题解首先把权值离散 将所有的点看成是单个插入操作,所有的询问看成是查询操作 二分第k小的数mid,将插入操作按照权值排序了之后就是在一段区间里 将<=mid的数加入到bit里,然后对于每一个询问在bit中查询 如果不够的话就往大的走,如果小的话就往小的走 注意如果向mid,r走的话要将k减去当前的答案代码#include<algorithm>#include<iostrea原创 2017-01-10 11:25:47 · 585 阅读 · 0 评论 -
[BZOJ2223][Coci 2009]PATULJCI(整体二分+bit)
题目描述传送门题解以前好像做过一样的题,可持久化权值线段树裸题对吧… 整体二分的话也不难想 首先需要找单调性,乍一看是没有单调性的 不过,如果当前二分的答案为mid,这个区间里所有小于等于mid的数都不够的话,mid就一定变大,反之相反 那么每一次就把小于等于mid的数都加到bit里,然后判断二分的方向就可以了 需要注意的一点是,最后当l=r时就不能再加小于等于mid的数了,必须要加入严格原创 2017-01-10 11:30:29 · 662 阅读 · 0 评论 -
[BZOJ2674]Attack(整体二分+树状数组套线段树)
题目描述传送门 数据有坑: 给出的不一定是左下角和右上角,需要自己判断交换。题解没见过整体二分里面还有个树套树的… 首先把坐标离散 感觉是K大数查询和矩阵乘法两道题的结合版,就是动态求矩阵的k大值 用bit套线段树的原因是没法写二维bit,于是线段树动态开点 把初始的矩阵和SWAP操作都看做修改,QUERY看成查询 二分第k大的数是mid,做权值小于等于mid的修改,查询的时候如果总数原创 2017-01-10 21:57:56 · 1285 阅读 · 0 评论 -
[BZOJ3813][清华集训2014]奇数国(数论+bit)
题目描述传送门题解题意就是求[l,r]所有数的积的φ\varphi 对于每一个数分解质因数,然后存入bit,维护单点修改区间查询 然后求φ\varphi的时候先对每一个质因子单独求(公式pk∗p−1pp^k*{p-1\over p}),然后再合并(φ(a∗b)=φ(a)∗φ(b),(a,b)=1\varphi(a*b)=\varphi(a)*\varphi(b),(a,b)=1) 这样时间复杂原创 2017-03-01 08:43:25 · 637 阅读 · 0 评论 -
[BZOJ3289]Mato的文件管理(莫队+树状数组)
在幻想前激发你的渴望 刺激你的愤怒让它们变为现实原创 2016-04-26 17:04:54 · 682 阅读 · 0 评论 -
[BZOJ3688]折线统计(dp+bit优化)
题目描述传送门题解n2kn^2k的dp是比较好想好写的 f(i,j,0/1)表示划分了i段,以第j个结尾,最后一段是上升0\下降1的方案数 f(i,j,0)=∑k=i+1j−1∑y(k)<y(j)f(i,k,0)+∑k=i+1j−1∑y(k)>y(j)f(i−1,k,1)f(i,j,0)=\sum\limits_{k=i+1}^{j-1}\sum\limits_{y(k)<y(j)}f(i,k,原创 2017-02-03 20:19:23 · 522 阅读 · 0 评论 -
[BZOJ3648]寝室管理(点分治+bit)
题目描述传送门题解Sunshine学长去年的互测题orz 然而他给的solution除了点分和bit什么都没说啊。。。 硬着头皮想吧,反正我知道要用bit了。。如果是树的话点分治+二分或者bit就能搞定 如果是环套树的话怎么办捏 首先考虑不经过环的答案,直接在外向树上点分就行了 然后考虑经过环的答案 假设当前外向树上深度为h的有x个点,那么上一棵外向树的贡献就是x*深度>=k-1-h的点原创 2017-02-15 23:41:16 · 550 阅读 · 0 评论 -
[Codeforces375D]Tree and Queries(dsu on the tree+bit)
题目描述传送门 题意:一棵树,每个点有一个颜色,每一次询问以x为根的子树中至少出现k次的颜色有多少种题解dsu on the tree… 记每一个颜色出现了多少次,再记出现多少次的颜色有多少个 因为是至少出现k次,挂一个bit就行了 注意bit更新的时候每一次都到最大值代码#include<algorithm>#include<iostream>#include<cstring>#in原创 2017-03-08 09:02:42 · 790 阅读 · 0 评论 -
[BZOJbegin][NOIP十连测第九场]小P的单调数列(数学相关+dp+bit)
题目描述题解一个非常有用的性质是这个数列只可能是一个单增的数列或者是一个单增的数列接上一个单减的数列。 怎么证明呢?其实很简单。假设三个增减增的数列和分别为abc,那么它最终的和为(a+b+c)/3。可如果我们只选择较大的两个ab的话,答案为(a+b)/2。显然是比上一个小的。 f(i)表示以i为结尾最大单增子序列和,g(i)表示以i为开头最大单减子序列和。那么ans=max{f(i),(f原创 2016-11-17 07:55:59 · 950 阅读 · 0 评论 -
[BZOJ3529][Sdoi2014]数表(莫比乌斯反演+树状数组)
题目描述传送门题解md刚开始读错题了 本来不是很难的一道题被我搞的看起来不可能做出来?首先看看数表里的数都是啥 实际上位置(i,j)上的数就是f(gcd(i,j))f(gcd(i,j)),其中f(i)f(i)表示i的约数和 那么考虑一下怎么科学地求出来ff 约数和定理: 若n=∏ipkiin=\prod\limits_i p_i^{k_i},其中pip_i为n的质因子,kik_i为质因子次原创 2017-03-20 16:53:43 · 479 阅读 · 0 评论 -
[BZOJ4361]isn(dp+树状数组+容斥原理)
题目描述传送门题解首先dp 令f(i,j)表示选了i个,选到第j个,其中第j个必须选,选出来的顺次排列成一个非降子序列的方案数 那么在整个子序列中选出来i个的方案数就是∑k=1nf(i,k)\sum\limits_{k=1}^nf(i,k) 假如说现在选了i个,也就是最终删除到这i个停止,那么剩下的n-i个数的顺序就无所谓了。但是这里面存在某些不合法的方案,就是删除到i+1个之后就已经满足非降原创 2017-03-23 18:43:32 · 627 阅读 · 0 评论 -
[BZOJ3295][Cqoi2011]动态逆序对(树状数组套线段树||cdq分治)
总有一天 能让这欢喜的歌声传到你身边原创 2016-04-28 14:10:29 · 935 阅读 · 0 评论 -
[BZOJ2253][2010 Beijing wc]纸箱堆叠(dp+bit+cdq分治)
题目描述传送门题解最长上升子序列+三维偏序问题 裸的dp人人会对吧O(n2)O(n^2) 考虑对序列进行cdq分治,每一次用左边的区间来更新右边的区间 按照x分治,每一次按照y排序,然后z用树状数组查询 需要注意的是,这里全部都是严格大于,也就是说分治的时候划分到左右两边的点不能出现x相等的情况,这样的话就预处理一下然后在选中点的时候搞一搞就行了 并且更新的顺序必须是:递归左区间,处理左区原创 2017-03-24 21:47:46 · 783 阅读 · 0 评论 -
[BZOJ2716][Violet 3]天使玩偶(cdq分治+bit)
题目描述传送门题解上下左右想想就不好搞啊…所以我们每一次只统计某个点左下方与它最近的,然后做4遍 |x-x’|+|y-y’|=(x+y)-(x’+y’),也就是求x+y最大的点 然后这不就和三维偏序问题差不多了么? 按照时间排序分治,每一次对(l,mid)和(mid+1,r)按照x排序,然后两个指针,对于每一个询问将横坐标都小于等于它的点按照y加入bit,权值为x+y,查询最大值然而写完了之后原创 2017-01-08 17:40:51 · 3654 阅读 · 0 评论 -
[BZOJ3262]陌上花开(cdq分治+bit)
题目描述传送门题解三维偏序问题? 首先按照x第一关键字,y第二关键字,z第三关键字排序,然后问题就转化成了求某一个(x,y,z)前面存在多少个(x’,y’,z)满足x>=x’,y>=y’,z>=z’ 由于x一定是有序的,那么根据x进行cdq分治 每一次将(l,mid)和(mid+1,r)分别根据y排序(x不一定有序),然后两个指针扫一下,查询之前把z小于等于它的都插入到bit中 这样做完了之原创 2017-01-08 17:33:05 · 1735 阅读 · 0 评论 -
树状数组 模板
T_T原创 2016-02-02 16:10:30 · 774 阅读 · 0 评论 -
【SDOI2009】【bzoj1878】HH的项链(离线+树状数组)
我不相信手掌的纹路,但我相信手掌加上手指的力量。原创 2016-02-02 16:39:08 · 911 阅读 · 0 评论 -
【Tisinsen1043】完美的代价(字符串+树状数组)
不求有结果,不求同行,不求曾经拥有,甚至不求你爱我。原创 2016-02-20 17:25:54 · 773 阅读 · 0 评论 -
[BZOJ2434][NOI2011]阿狸的打字机(AC自动机+树状数组)
有希望在的地方,痛苦也成欢乐。原创 2016-04-04 23:11:54 · 1810 阅读 · 1 评论 -
[BZOJ1452][JSOI2009]Count(二维树状数组)
假饰天真是最残酷的自我糟践。原创 2016-04-05 07:44:46 · 610 阅读 · 0 评论 -
[BZOJ1935][SHOI2007]Tree 园丁的烦恼(离线+动态维护树状数组)
没有皱纹的祖母是可怕的,没有白发的老者是让人遗憾的。原创 2016-04-05 09:39:52 · 1477 阅读 · 0 评论 -
[BZOJ2789][Poi2012]Letters(树状数组求逆序对)
凡是出于爱的急切都是可以原谅的。原创 2016-05-02 17:28:57 · 674 阅读 · 0 评论 -
[BZOJ3333]排队计划(离散化+树状数组+线段树)
这个世界上有无法赎清的罪,但是,却没有不能去爱的人啊。原创 2016-05-04 18:37:08 · 528 阅读 · 0 评论 -
[BZOJ1103][POI2007]大都市meg(dfs序+bit||链剖)
A true friend is someone who accepts your past, supports your present and encourages your future.原创 2016-10-13 21:37:38 · 742 阅读 · 2 评论 -
[NOIP2013][vijos1845]花匠(dp+bit)
题目描述传送门题解由题意可知要求留下的花的高度成锯齿形。 设f(i,0)表示以i结尾的花,是上升趋势 留下的最多的花,f(i,1)表示以i结尾的花,是下降趋势 留下最多的花。 那么f(i,0)=max{f(j,1)},1<=j<<i且h(j)<<h(i),f(i,1)=max{f(j,0)},1<=j<<i且h(j)>h(i). 最暴力的转移是O(n)O(n)的,用树状数组优化一下可以做到O(原创 2016-11-04 15:59:35 · 481 阅读 · 0 评论 -
[NOIP2013][vijos1842]火柴排队(数学相关+离散化+bit)
题目描述传送门题解首先把给出的式子化一化。 ∑i=1n(ai−bi)2=∑i=1n(a2i+b2i−2aibi)=∑i=1nai+∑i=1nbi−2∑i=1naibi\sum\limits_{i=1}^n (a_i-b_i)^2=\sum\limits_{i=1}^n (a_i^2+b_i^2-2a_ib_i)=\sum\limits_{i=1}^na_i+\sum\limits_{i=1}^nb原创 2016-11-11 23:22:29 · 754 阅读 · 0 评论 -
BC#90 解题报告
A题意给出一堆旗子的坐标,问有多少个行和列没有旗子。 坐标范围10610^6,个数10610^6。题解搞2个bool数组就行了… 排序被卡,ggB题意一个有根树,每个节点上都有若干个石子,每次操作可以将一个节点上的若干个石子(>0)(>0)移动到它的父亲上,当一个人没有任何合法操作时则负,判断当期局面是必胜态还是必败态。题解设根节点的深度为0,将所有深度为奇数的节点的石子数目xor起来,则先手必原创 2016-12-18 17:31:08 · 510 阅读 · 0 评论 -
[BZOJ3881][Coci2015]Divljak(AC自动机+dfs序+lca+bit)
题目描述传送门题解首先把所有的S串都丢到trie树里,建立fail树。 每加进来一个T,把它在AC自动机上暴力匹配,匹配到的每一个点在fail树中到根的路径上出现过的S串end标记的S串都应该+1,也就是说,每一次求出匹配到的每一个点在fail树中到根的路径上出现过的end标记表示的S串,然后取并集,这些S串的答案应该+1. 由于有可能有重复计算,我们需要把所有匹配过的点按照dfs序排序,然后要原创 2016-12-25 10:35:27 · 696 阅读 · 0 评论 -
[BZOJbegin][noip2016十连测第九场]小P的单调区间(dp+bit)
题目描述 题解一个非常有用的性质是这个数列只可能是一个单增的数列或者是一个单增的数列接上一个单减的数列。 怎么证明呢?其实很简单。假设三个增减增的数列和分别为abc,那么它最终的和为(a+b+c)/3。可如果我们只选择较大的两个ab的话,答案为(a+b)/2。显然是比上一个小的。 f(i)表示以i为结尾最大单增子序列和,g(i)表示以i为开头最大单减子序列和。那么ans=max{原创 2017-01-06 09:19:39 · 656 阅读 · 0 评论 -
[BZOJ1176][Balkan2007]Mokia(cdq分治+bit)
题目描述传送门 S不用管它…题解cdq分治板子题T_T 感觉所有讲cdq分治的资料都是“从cash谈起”,然而我感觉这题比较裸,可以先做这道题明白了cdq是干什么的再去想那些神dp感觉cdq分治的做法就是将一个区间(l,r)分成(l,mid)和(mid+1,r),然后处理(l,mid)对(mid+1,r)的影响,然后递归处理(l,mid)和(mid+1,r) 关键就是如何处理(l,mid)对(原创 2017-01-08 17:24:54 · 509 阅读 · 0 评论 -
[BZOJ4430][Nwerc2015]Guessing Camels赌骆驼(cdq分治+bit||bit)
题目描述传送门题目大意:给出三个1~n的排列,求有多少个数对,在这三个排列中的相对位置相同。题解处理出每一个数在三个排列中的位置,就形成了n个三维点对 然后就是一个三维偏序问题了,用cdq分治+bit求解做完之后发现有一个更厉害的只用bit的方法 考虑容斥,答案=总数-不符合条件的对数 然后又知道不符合条件的点对一定是在两个排列里相对位置相同,在一个中和另外两个不同,那么两两统计三个排列,相当原创 2017-04-06 19:28:02 · 785 阅读 · 0 评论