- 博客(7)
- 收藏
- 关注
原创 树状数组种类合集
单点更新,区间查询 hdu1166#include<bits/stdc++.h>using namespace std;const int maxn=50005;int num[maxn],tree[maxn];int n;int lowbit(int x){ return x&(-x);}void updata(int pos,int k)...
2018-08-28 21:24:14 244
原创 hdu 4348 To the moon 主席树
链接题意:给你下标从1开始到n的n个数字。有一个时间戳,一开始是0。 有四种操作: 1.C l r d 区间[l,r]中的每个数字都加上d,并且时间戳+1 2.Q l r 询问区间[l,r]的区间和 3.H l r t 询问在时间戳为t的时候[l,r]的区间和 4.B t 把时间戳变为t。这题可以用主席树来...
2018-08-27 21:17:52 224
原创 st
对于给定区间询问最大最小值的问题在之前主要都是用线段树来处理的。st也可以处理一些简单的rmq问题,但是有个前提,没有在线修改区间的内容。在这个前提之下,st有很大的优势,一个是代码比较短,还有一个是时间复杂度比较小(预处理Onlogn,询问O1)。以询问最大值为例,用一个二维数组 stmax[i][j]表示从第i个位置开始,连续2^j的长度的区间里的最大值。先预处理一下stmax[i][0]...
2018-08-24 20:49:50 561
原创 反素数
最近才接触到反素数,放一个大佬的链接反素数的概念:先定义g(x)为g的约数的个数,如12有1,2,3,4,6,12,所以g(12)=6。如果某个整数x满足:g(x)>g(i),i 取(0,x),那么x为反素数。 注:约数,因数,因子都是同一个概念。真因子就是在这个基础上除去本身。任意一个合数都可以表示为素数的乘积形式:N=p1^e1*p2^e2*p3^e3*p4^e4…… p1,...
2018-08-24 13:40:12 4215 2
原创 素数小结
素数的定义:一个大于1的自然数,除了1和它自身外,不能整除其他自然数的数叫做质数或者素数。刚开始接触c语言的时候,判断一个数n是否为素数采用的是最朴素的思想:枚举2到根号n,如果有一个数可以整除n,那么这个数一定是合数。如果没有一个数可以整除,那就是素数了。int n;bool ff=false; scanf("%d",&n);for(int j=2;j&
2018-08-24 11:05:18 470
原创 Count on a tree SPOJ - COT 主席树+lca
题目链接样例解释:给出n和m表示有n个点和m个询问 下一行有n个值代表对应点的权值 然后是n-1行的u和v,表示u和v相连 最后是m个询问,每个询问有u,v,k,表示u到v这条链上第k大的权值。 如询问 2 5 1 就是图中画出来的这条链中第一个大的权值,那就是2了。解法: 这道题目跟主席树入门题目:求一段区间第k大很像,不同的是这道题目是求在树的一条链上的第k大...
2018-08-22 11:51:25 1410
原创 HDU 1698 线段树区间更新
Just a HookTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 42935 Accepted Submission(s): 2064Problem Description In the game of DotA, ...
2018-08-12 19:28:33 679
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人