关闭
当前搜索:

[2017集训队作业自选题#115]Replace All

题解推荐wxh 可爱的修修 本题相较于CF794G,n加0了。 我们需要快速计算 ∑ni=1∑nj=12(i,j)\sum_{i=1}^n\sum_{j=1}^n2^{(i,j)} ∑nd=12d∑n/di=1∑n/dj=1[(i,j)=1]\sum_{d=1}^n2^d\sum_{i=1}^{n/d}\sum_{j=1}^{n/d}[(i,j)=1] ∑nd=12d∗(2∗∑n/di=...
阅读(306) 评论(0)

[2017集训队作业自选题#154]简单数据结构题

题目大意一颗点权树,初始点权均为0。 每次操作将所有距离x为1的点点权+1,然后希望你求出距离x为1的点点权异或和。一个转化把修改分成儿子修改和单点修改,把询问分成儿子询问和单点询问。 每次相当于x的儿子修改+x的父亲单点修改,询问类似。根号算法发现一个点儿子的点权种类数最多根号种。 不妨用链表(动态桶)维护每种点权出现次数。正解注意到x^(x+1)=2*lowbit(~x)-1。 我们不妨...
阅读(122) 评论(0)

[codechef]WEASELTX

题目大意有一颗点权树。 每过一天,就会自上而下更新,更新的含义是点权变成子树内点权异或和。 若干个询问询问第d天根节点的点权。分析很显然深度相同的可以缩在一起。 我们设a[i][j]表示第i天深度为j的节点点权是否会给根节点带来影响。 容易发现a[i][j]=XORj−1k=0a[i−1][k]a[i][j]=XOR_{k=0}^{j-1} a[i-1][k] 也就是a[i][j]=a[i...
阅读(202) 评论(0)

n根号n解决在线无修区间逆序对问题

做法带log的分块相信大家都会,今天我们来讲讲不带log。 首先先离散化,这样值域就变成n了。 我们以根号为阈值分块,然后我们记A->B的含义是将A和B两个序列拼接在一起有多少逆序对两个元素一个来自A另一个来自B。 首先考虑如何求A->B,可以发现A和B的内部顺序是没有关系的,因此如果我们把A和B排好序了,运用归并即可线性求得A->B。 现在我们先把每个块排序,然后预处理一个位置到块头的逆序...
阅读(231) 评论(0)

区间第k小

题目大意给你一个序列元素均在[0,n)内,并给定常数w。 每次在线询问区间第k小,要求忽略区间出现次数>w的数。根号算法我们不妨考虑如何离线。 可以使用莫队+线段树做到 n根号n log n,非常菜鸡。 可以发现我们只有n次询问却有n根号n次插入删除,如果我们使用线段树是很亏的。 考虑经典套路即平衡复杂度: kth是有办法O(1)-O(√n)的,具体做法是维护值域分块,以及一个桶。 值域...
阅读(188) 评论(0)

摧毁图状树

题目大意Q次询问,每次给一个k。 将树用尽量少的长度不超过k的祖先后代链覆盖,使得每个点至少覆盖一次。贪心对偶成选择尽量多的点,使得任意长度不超过k的祖先后代链上至多一个点被选择。 这样转化则贪心很显然。尽量选深度大的点。 如果有t个叶子,选取的点至多为t+(n-t)/k。 因为叶子一定会被选择,同样删去所有被选择的点后,每个联通块大小不会小于k(否则一定在原来的树中存在长度不超过k的祖先后...
阅读(228) 评论(0)

回转寿司

题目描述分块你考虑有一堆人,价格为x的进去了出来会变成啥样。 那么肯定是找到这堆人所持价格的最大值y,如果x>y,出来的还是y,否则x会变成某个人手里的,然后出来的是y。 我们考虑分块,每个块维护一个数堆。 如果x要经过一个块,可以丢进数堆,再取出一个最大值。然后还要给这个块打上一个标记。 但是对于零散的不是很好做,即重构块,我们如何快速得到每个位置经过一系列标记后的值? 注意这个问题具有...
阅读(110) 评论(0)

[CodeM初赛A轮]E

题解大小点分治。 出现次数大于阈值的,处理前缀和,然后暴力枚举一个询问判断。 出现次数小于阈值的,跑莫队,维护每个数出现次数,以及每种出现次数的数的个数,然后询问可以暴力枚举出现次数。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std; const int max...
阅读(368) 评论(2)

[bzoj4815][CQOI2017]小Q的表格

题目描述小Q是个程序员。 作为一个年轻的程序员,小Q总是被老C欺负,老C经常把一些麻烦的任务交给小Q来处理。每当小Q不知道如何解决 时,就只好向你求助。为了完成任务,小Q需要列一个表格,表格有无穷多行,无穷多列,行和列都从1开始标号。 为了完成任务,表格里面每个格子都填了一个整数,为了方便描述,小Q把第a行第b列的整数记为f(a,b),为了完成 任务,这个表格要满足一些条件:(1)对任意的正...
阅读(279) 评论(0)

[CF538F]A Heap of Heaps

题目大意懒得写做法从0开始标号。 注意i是父亲是(i-1)/k 因此可以分块 对一段产生的影响可以在数组上打tag#include #include #define fo(i,a,b) for(i=a;i=b;i--) using namespace std; const int m...
阅读(100) 评论(0)

[bzoj4035]数组游戏

题目描述有一个长度为N的数组,甲乙两人在上面进行这样一个游戏:首先,数组上有一些格子是白的,有一些是黑的。然 后两人轮流进行操作。每次操作选择一个白色的格子,假设它的下标为x。接着,选择一个大小在1~n/x之间的整数 k,然后将下标为x、2x、…、kx的格子都进行颜色翻转。不能操作的人输。现在甲(先手)有一些询问。每次他 会给你一个数组的初始状态,你要求出对于这种初始状态他是否有必胜策略。好题...
阅读(303) 评论(0)

[bzoj4816][SDOI2017]数字表格

题目描述Doris刚刚学习了fibonacci数列。用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师的超级计算机生成了一个n×m的表格,第i行第j列的格子中的数是f[gcd(i,j)],其中gcd(i,j)表示i, j的最大公约数。Doris的表格中共有n×m个数,她想知道这些数的乘积是多少。答案对10^9+7取...
阅读(260) 评论(0)

[bzoj3509][codechef]COUNTARI

题目大意求有多少对i<j<ki<j<k 满足a[j]-a[i]=a[k]-a[j]分块FFT口胡里写过了。 枚举j,我们可以得到两边的生成函数。 只要卷积起来看2*a[j]项的系数就可以统计了。 这样做显然不行。 考虑分块。 对于i或k在块内的情况,用枚举来暴力统计。 而对于i与k均不在块内的情况,用FFT。#include #include #i...
阅读(170) 评论(0)

[luoguP3674]小清新人渣的本愿

题目大意询问区间是否存在两个数和为x/差为x/积为x 这两个数可以使同一个数bitset不会bitset的蒟蒻哭了 维护bitset加和减就随便做了。 积就枚举较小数 上个莫队算法来维护我们需要维护的#include #include #include #define fo(i,a,b) for(i=a;i<=b;i++) using n...
阅读(374) 评论(0)

[hackerrank]Range Modular Queries

题目大意区间询问模x等于y的值的个数 值域是[0,40000] 允许离线平衡结合对于x200的询问,因为x较大所以符合条件的数很小,这时候可以考虑使用莫队。 维护一个桶,每次询问只要看一下对应符合的数字有多少个即...
阅读(249) 评论(0)
47条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:297134次
    • 积分:11195
    • 等级:
    • 排名:第1574名
    • 原创:805篇
    • 转载:4篇
    • 译文:0篇
    • 评论:197条
    最新评论
    文章分类