ll p,a[MAXN],atag[MAXN],mtag[MAXN],ctag[MAXN],tree[MAXN]; void Pushup(int rt){tree[rt]=(tree[rt<<1]+tree[rt<<1|1])%p;} void Pushdown(int rt,int ln,int ...
分类:
其他好文 时间:
2020-05-17 16:08:05
阅读次数:
38
人生第一道树套树的题,看着bin巨的代码才学会,太累了,文字明天补 #include<bits/stdc++.h> using namespace std; const int maxn=60010; int n,q,m,tot; int a[maxn]; int t[maxn]; int T[ma ...
分类:
编程语言 时间:
2020-05-17 01:13:19
阅读次数:
56
很好的题解链接,学到了懒标记和线段树的更容易写的版本。https://llkabs.blog.luogu.org/xian-duan-shu 本题主要解决区间修改,而不是单点修改。 ac代码如下 #include<bits/stdc++.h> using namespace std; typedef ...
分类:
其他好文 时间:
2020-05-16 19:08:30
阅读次数:
49
通过A,C数组数组确定B数组。断环成链。 修改A数组只影响B数组的四个节点。 求的是离B0最远零区间的距离。 因此用线段树维护B数组的01情况 二分找答案 代码如下 #include<cstdio> #include<cstring> #include<cstdlib> #include<algor ...
分类:
其他好文 时间:
2020-05-16 12:34:55
阅读次数:
56
树链剖分主要用来维护树的路径信息,大致思路是把一棵树变成一个特定的序列,将树上的问题转化成线性结构上的问题,然后用数据结构维护在这个序列 引例: 树链剖分的思想与本例类似 有一棵n个节点的有根树,每个节点都有一个权值 一共有m次更新/查询 更新:将节点x的权值修改为y 查询:查询x以节点为根的子树中 ...
分类:
其他好文 时间:
2020-05-15 00:24:39
阅读次数:
54
树状数组 一、 引言 解题过程中,我们有时需要维护一个数组的前缀和S[i]=A[1]+A[2]+A[3]+A[4]+…+A[i]。 但是不难发现,如果我们修改了一个 A[i], S[i]、S[i+1]…S[n]都会发生变化。 可以说,每次修改 A[i]后,调整前缀和 S 在最坏的情况下会需要 O(n ...
分类:
编程语言 时间:
2020-05-12 16:40:29
阅读次数:
67
LINK: "字符串树" 先说比较简单的正解。由于我没有从最简单的考虑答案的角度思考 所以... 下次还需要把所有角度都考察到。 求x~y的答案 考虑 求x~根+y~根 2 lca~根的答案。 那么问题变成了 求某个点到根的边有多少条是以当前询问为前缀的。 前缀这个问题容易想到trie树 建立前缀t ...
分类:
Web程序 时间:
2020-05-11 22:02:46
阅读次数:
75
Codeforces Round 395 div1 "contest链接" tags 、`费马小定理 树hash 换根 线段树 并查集` 码量细节:E C D A B 难度:C E D B A A. Timofey and a tree 题意:给一棵点染色树,求一个根节点,使得除了原树以外所有的子树 ...
分类:
其他好文 时间:
2020-05-11 15:47:23
阅读次数:
52
李超线段树模板题,要同时维护最大值和最小值,然后求交点的时候注意 double 的转换 code: #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <vector> #include ...
分类:
其他好文 时间:
2020-05-11 13:14:05
阅读次数:
85
地址:https://ac.nowcoder.com/acm/contest/5477/F 解析:其实并不需要关心它具体是怎么构造的,那样的是很麻烦的。。。明确一点,某个位置出现的次数越多,就需要给它赋越大的值,既当前sum=出现次数*x。出现次数,可以通过差分数组或线段树维护一下,然后排个序,按顺 ...
分类:
编程语言 时间:
2020-05-11 00:50:32
阅读次数:
76