数据结构-分块
Toooooocold
这个作者很懒,什么都没留下…
展开
-
UVALive 6860 Most Influential Pumpkin
题意:给你一个序列,每次操作可以使一段连续的序列加1,每次更新完后输出这个序列的中位数。 注意到中位数的大小只会增加,不会减小,并且每次操作后最多使中位数加1. 将原序列分块操作,若块在询问的【L,R】中,则使块的cnt++,这样只对询问区间的首尾单独操作即可。 每次更新后查找序列中小于等于当前中位数的个数,如果个数小于等于n/2.则中位数++。 查找小于等于中位数的个数时用lower_b原创 2017-07-21 13:15:03 · 340 阅读 · 0 评论 -
CS Academy Round #32 Light Count
内存限制了12MB. 所以输入是题目给的随机数。 数据大小是5*10^7,可以将其分成781250份,每份一个ULL表示状压,最后树状数组做。 学到了__builtin_popcountll(),快速得到一个二进制数中有几个1. 代码:#include #define pb push_back #define fi first #define se second using nam原创 2017-06-11 15:31:13 · 336 阅读 · 0 评论 -
HDU 5840 This world need more Zhu
Source:2016中国大学生程序设计竞赛 - 网络选拔赛 Problem: ∙一棵树,n个结点各有一个值 ∙q个询问,问u→v这条路径上第k,2k..mk个点的最大值。 ∙类似于计蒜客 17120 Xor, 但是求的是这条路径上的异或值原创 2017-09-19 11:25:40 · 485 阅读 · 0 评论 -
计蒜客 17120 Xor
Source:2017 ACM-ICPC 亚洲区(西安赛区)网络赛 Problem: ∙一棵树,n个结点各有一个值 ∙q个询问,问u→v这条路径上第0,k,2k..mk个点的异或值。 ∙类似于HDU5840,但是求的是这条路径上的最大值原创 2017-09-18 19:23:19 · 449 阅读 · 0 评论