数据结构
文章平均质量分 89
数据结构
IcecreamArtist
咸鱼
展开
-
CCPC+ICPC预备
CCPC 网络赛 Remove每个数,用线性筛+递推求他的最大质因子。O(n)O(n)O(n)单调队列优化转移:f[j]=min(f[j],f[i]) i+1<=j<=i+mxp[i]-1//// Created by artist on 2021/9/2.//#include<bits/stdc++.h>using namespace std;typedef long long ll;#define mkp make_pair#define fi fi原创 2021-09-02 13:58:11 · 389 阅读 · 0 评论 -
八月刷题记录3
牛客多校10 A Browser Games原创 2021-08-26 22:32:24 · 88 阅读 · 0 评论 -
八月刷题记录2
洛谷P4551 最长异或路径给定一棵 n 个点的带权树,结点下标从1开始到 n。寻找树中找两个结点,求最长的异或路径。异或路径指的是指两个结点之间唯一路径上的所有边权的异或。01trie板子任意指定一个点为根。建一棵01trie,这棵trie存所有点到根的路径的异或值。考虑到路径(u,v)的异或=路径(root,u)^(root,v),因此对于每一个点到根的异或值,我们都在01trie上找到另一个点到根的异或值,满足两者异或最大。维护这个最大值。如何找?高位往下找,能不同就贪心的取不同。因为这样原创 2021-08-17 13:31:59 · 121 阅读 · 0 评论 -
【数据结构:进阶】可持久化数据结构
珂朵莉树features暴力,实现简单本质思想是分块,相同值连在一起的算一块,用set维护适用于大区间赋值问题(若每次赋值的区间很小,则退化)容易被卡(codecf915E 动态开点/珂朵莉树注意要开快读快输#include<bits/stdc++.h>using namespace std;typedef long long ll;struct node{ ll l,r; mutable int v; node(ll l, ll r, in原创 2021-04-14 22:19:28 · 244 阅读 · 1 评论 -
【数据结构:入门】前缀和与差分数组
前言区间修改时常可以通过差分数组优化为O(n)。再经过求前缀和,便可以得出每一个数的值。公式前缀和sum[i]=∑j=1ia[j]sum[i]=\sum_{j=1}^ia[j]sum[i]=∑j=1ia[j]前缀差分a[i]=∑j=1ichafen[j]a[i]=\sum_{j=1}^ichafen[j]a[i]=∑j=1ichafen[j]chafen[i]=a[i]−a[i−1]chafen[i]=a[i]-a[i-1]chafen[i]=a[i]−a[i−1]区间修改:例:区间原创 2020-10-14 16:32:53 · 145 阅读 · 0 评论 -
【数据结构:入门】线段树&树状数组
性质点修改(不用lazy)/区间修改(lazy数组)点查询/区间查询O(log n)/O(nlog n)练习题HDU1394 Minimum Inversion Number点修改+区间查询+逆序数#include<bits/stdc++.h>using namespace std;const int N=5e3+5;int a[N],num[N<<2];void push_up(int u){ num[u]=num[u<<1]+num[u&l原创 2020-07-18 11:12:14 · 166 阅读 · 0 评论 -
【线性表】
例题#include<iostream>#include<stdio.h>#include<set>#include<cstdio>#include<string.h>#include<cstdlib> #include<stack> #include<queue> #include<algorithm> #include<cstring> #include原创 2020-07-15 22:11:15 · 113 阅读 · 0 评论 -
[ACM]【map/分治】厦大月赛 环鸽的CHONG
环鸽的CHONG传送门题意:输入一个数列,如果该数列任意连续子序列满足存在一个数是唯一的(是”好序列“),输出chong,否则输出fuchong。思路:分治思想。如果(1,n)满足要求(是好序列),且唯一数是a[x]。那么,包括a[x]的所有序列都满足要求;只需要考虑不包括的满不满足。即考虑(1,x-1)和(x+1,n)。如此分治下去。如何快速判断有无唯一数呢?这里有一个技巧:对于每一个位置上的数,预处理记录在他左边离他最近的数值相同的数的位置,和在他右边离他最近的数值相同的数的位置。如原创 2020-06-05 18:15:58 · 122 阅读 · 0 评论 -
[ACM]【queue】AtCoder161 Lunlun Number
@[ACM]【queue】AtCoder161 Lunlun NumberLunlun Number题意:找到第k个每两位之间是连续数字的数字代码#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int k; scanf("%d",&k); queue<...原创 2020-04-06 20:12:25 · 256 阅读 · 0 评论 -
[ACM]【二叉树】遍历问题
线段切割注:持续更新已知先序中序求后序洛谷1827 美国血统代码:#include<bits/stdc++.h>using namespace std;void dfs(string xx,string zx){ if(!xx.size()) return; int pos=zx.find(xx[0]); dfs(xx.substr(1,pos),zx.substr...原创 2020-04-11 12:19:26 · 274 阅读 · 0 评论 -
[ACM]【BST】洛谷5076 普通二叉树(简化版)
题目思路:没什么好说的,就是裸体的BST。第一次做二叉树的题目,记录一下,以便以后查看。需要注意的是找不到前驱的时候输出负无穷,找不到后继的时候输出正无穷…根据排名查找数字,找不到输出正无穷。还有洛谷题解区的大佬有两位都写错了,测试样例给的没错,他们理解错了,(排名就是比这个数小的数的个数加1,那样例中的3不就排第二)。可能测试数据给的不够吧,他们居然都A了…代码:#include...原创 2020-04-11 11:04:27 · 602 阅读 · 0 评论