![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
------数据结构------
qq_43520313
这个作者很懒,什么都没留下…
展开
-
区间GCD
题目: 给nnn个数,最大值为MAXMAXMAX,用nlogMAXnlog^{MAX}nlogMAX的算法预处理区间gcdgcdgcd 思路: 当右端点确定时,左端点越往左,gcdgcdgcd非递增,并且如果减小,则每次至少除222,所以gcdgcdgcd的个数最多logMAXlog^{MAX}logMAX个,所以我们可以dpdpdp预处理出每种gcdgcdgcd的最左端点。用vectorvectorvector存(x,y)(x,y)(x,y),xxx表示gcdgcdgcd,yyy表示左端点,左端点从大到小原创 2020-10-10 12:04:21 · 262 阅读 · 0 评论 -
二维树状数组
void update(int x,int y,ll d){ while(x<=n){ int tmp=y; while(tmp<=m) c[x][tmp]+=d,tmp+=tmp&-tmp; x+=x&-x; } } ll query(int x,int y){ ll res=0; while(x<=n){ int tmp=y; whil原创 2020-10-29 13:57:50 · 63 阅读 · 0 评论 -
线段树模板
https://www.luogu.com.cn/problem/P3373 #include<bits/stdc++.h> #define ll long long using namespace std; const int N=200009; int n,m; ll p,sum[N<<2],add[N<<2],mul[N<<2]; void pushdown(int o){ int lc=o<<1,rc=o<<1|1;原创 2021-04-08 13:34:04 · 101 阅读 · 0 评论 -
D 动态序列
题目 https://ac.nowcoder.com/acm/contest/13504/D 给出n(1≤n≤100000)n(1\le n\le 100000)n(1≤n≤100000)个整数ai(1≤ai≤109)a_i(1\le a_i\le 10^9)ai(1≤ai≤109)的序列,有q(1≤q≤105)q(1\le q\le 10^5)q(1≤q≤105)个询问,设序列长度为lenlenlen,序号从111开始,每个询问有如下操作: 1 b:序列中所有数乘以整数b(1≤b≤109)1原创 2021-03-28 20:49:19 · 181 阅读 · 0 评论 -
最近公共祖先
#include<bits/stdc++.h> using namespace std; const int N=100009; int n,f[N][20],t,d[N]; vector<int>w[N]; void bfs() { queue<int>q; memset(d,0,sizeof(d)); d[1]=1,q.push(1); while(q.size()) { int x=q.front(),si;原创 2020-11-10 15:51:40 · 74 阅读 · 0 评论 -
树的直径
#include<bits/stdc++.h> using namespace std; const int N=100009; struct node { int to,di; node(int x,int y):to(x),di(x) {} }; int n,ans=0,d[N]; vector<node>w[N]; void dfs(int x,int fa) { int si=w[x].size(); d[x]=0; for(int i原创 2020-11-10 15:33:04 · 57 阅读 · 0 评论 -
这是二叉搜索树吗?
题目: https://pintia.cn/problem-sets/994805046380707840/problems/994805070971912192 一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。 所谓二叉搜索树的“镜像”,即将所有结点的左右子树对换位置后所得到的树。 给定一个整数键值序列,现请你编写程序,判断这是否是对一棵二叉搜索树或其镜像进行前序遍原创 2020-11-09 21:28:26 · 223 阅读 · 0 评论 -
Be Geeks!
题目: https://ac.nowcoder.com/acm/contest/7817/B 给你nnn个数,设G(i,j)=gcd(ai,ai+1...aj)G(i,j)=gcd(a_i,a_{i+1}...a_j)G(i,j)=gcd(ai,ai+1...aj),M(i,j)=max(ai,ai+1...aj)M(i,j)=max(a_i,a_{i+1}...a_j)M(i,j)=max(ai,ai+1...aj),计算 ∑1≤i≤j≤nG(i,j)⋅M(i,j) \sum_{1\le i\原创 2020-10-07 15:50:41 · 180 阅读 · 0 评论