![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
文章平均质量分 64
鲜果维他命
Don't be a programmer,to be a problem solver
展开
-
Educational Codeforces Round 112 (Rated for Div. 2)(部分题解!)
A. PizzaForcesA. PizzaForces题意:易懂,略思路:简单贪心即可,把n分成这样的形式n=10+x+10y,那么10y个人用y个large蛋糕,剩下的10+x用三种蛋糕组合 看哪个最省时间AC_code:#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int t; cin>>t; while(t--){ ll n; cin&g原创 2021-09-15 22:18:00 · 142 阅读 · 0 评论 -
2017ICPC西安现场赛 XOR(线段树合并线性基)
题目链接:https://nanti.jisuanke.com/t/A1607题目大意 :给你长度为n的序列,以及一个数k,有q次询问,每一次询问给你一个区间[L,R],然后你可以在区间内取任意多个数(每个数只能去一次),异或这些数得到一个值val,使得k|val的最值大,输出这个最大值分析:或(|)操作,我们知道对应二进制为只要有一个1,结果就为1,所以我们让k|val最大,必须把k的高位0尽可能变为1,那么我们对k的二进制位取反得到一个数x,也变成了我们尽可能保留x的高位1,所以我们把原序列的所有数原创 2021-07-21 18:06:23 · 181 阅读 · 0 评论 -
树链剖分题目大集
树链剖分题目大集如果还没学树链剖分的伙伴可以跳转到下面的博客1.模板题 P3384 【模板】轻重链剖分/树链剖分2.洛谷-P3379 【模板】最近公共祖先(LCA)(强行用树剖写LCA)3.洛谷-P2590 [ZJOI2008]树的统计4.P3038 [USACO11DEC]Grass Planting G5.P3178 [HAOI2015]树上操作6.树链剖分+线段树 2019ICPC西安邀请赛E7.HDU - 5052树链剖分主要是解决对于树上路径的修改和查询操作,常常结合线段树来出题,使用线段树维护原创 2021-07-11 15:23:06 · 411 阅读 · 0 评论 -
2019ICPC西安邀请赛E题,线段树+述链剖分+nim博弈
Treehttps://nanti.jisuanke.com/t/39272题意:给你一颗树,结点权值告诉你,你有如下三种操作1 s t 修改从1到s的路径上的所有点,a[i]=a[i]|t2 s t 修改从1到s的路径上的所有点,a[i]=a[i]&t3 s t 询问将1到s的路径上的所有点作为石头堆,再加上一个个数为t的石头堆,进行一次尼姆(nim)博弈,先手胜利输出YES,否则输出NO前置知识:nim博弈先手的必胜条件为,n堆石头的异或和不为0,也即a[1] ^ a[2] ^a[原创 2021-07-08 19:24:20 · 169 阅读 · 0 评论 -
dfs序+树链剖分,超详细讲解+原理分析+模板(看不懂来打我)
dfs序+树链剖分,超详细讲解+原理分析+模板(看不懂来打我dfs序+树链剖分一. 树链剖分能解决什么问题?二.树链剖分前置知识1.dfs序2. 时间戳3.dfs序和时间戳有什么用处线段树的区间修改和查询,对链进行操作三.树链剖分模板四.视频资源讲解dfs序+树链剖分一. 树链剖分能解决什么问题?二.树链剖分前置知识1.dfs序2. 时间戳按照dfs第一次访问的顺序,给每一个节点标记上时间戳3.dfs序和时间戳有什么用处开始剖分,跑第二次dfs的作用,也即dfs1和dfs2原创 2021-07-07 17:45:52 · 906 阅读 · 0 评论 -
线段树求最大连续子段和(详细讲解+例题分析)
线段树求最大连续子段和一.原理分析二.例题讲解例题1:例题2:一.原理分析二.例题讲解例题1:https://vjudge.z180.cn/problem/SPOJ-GSS1题目大意:给你一个长度为N的序列,再给你M次询问,每一次询问给你一个x,y要求输出区间[x,y]的最大连续子段的和是多少.分析:这道理就是就是最大连续子段的板子题,搞懂上面的原理分析就可以轻松解决了AC代码:#include<bits/stdc++.h>#define ls dep<<1原创 2021-05-13 18:09:38 · 1131 阅读 · 4 评论 -
Poj 2777 Count Color(可合并区间线段树)
题目链接https://vjudge.z180.cn/problem/POJ-2777题目大意:给你一个长度为N的[1,N][1,N][1,N]区间,一开始区间的颜色初始化为1,给你一个T表示颜色在[1,T]范围类可选,然后你有M次操作,操作有如下两种情况1.C A B C 表示把区间[A,B][A,B][A,B]染成颜色C2.P A B表示查询区间[A,B][A,B][A,B]有多少种不同颜色,并输出分析:这道题一看区间修改加区间查询,线段树跑不掉,首先对于一个区间我们不能单纯通过它左儿子不同原创 2021-05-13 12:24:26 · 130 阅读 · 0 评论 -
HDU 3333 Turing Tree (线段树+离散化+离线处理)
题目链接:https://vjudge.z180.cn/problem/HDU-3333题目大意:给你长度为N的序列,再给你Q次询问,每次询问给你一个区间[l,r],按询问顺序依次输出序列中区间[l,r]的数的总和(重复值只记录一次)[l,r],按询问顺序依次输出序列中区间[l,r]的数的总和(重复值只记录一次)[l,r],按询问顺序依次输出序列中区间[l,r]的数的总和(重复值只记录一次)(这Q次询问是一次性给出来的,这也是这道题可以离线处理的原因).分析:这道题如果不要求重复值只记录一次,那么就直原创 2021-05-12 18:28:26 · 120 阅读 · 0 评论 -
线段树---扫描线(求重叠矩形面积)
线段树---扫描线求面积一.讲解二.练习题一.讲解扫描线:下面是来自soar转载的一篇博客。这篇博客解决了我对算区间长度时的不理解。实际上这个线段树的叶子节点保存的是这个点x坐标到下一个x坐标(排序后的)的区间长度。题意:二维平面有n个平行于坐标轴的矩形,现在要求出这些矩形的总面积. 重叠部分只能算一次.分析:线段树的典型扫描线用法.首先假设有下图两个矩阵,我们如果用扫描线的方法如何计算它们的总面积呢?首先我们将矩形的上下边分为上位边(即y坐标大的那条平行于x轴的边),和下位边(y坐标转载 2021-05-12 16:20:42 · 872 阅读 · 1 评论 -
2019银川区域赛 Pot!!(线段树+质因数分解)
题目链接:https://nanti.jisuanke.com/t/42387题解:乍一看这道题就是质因数分解+线段树,质因数分解就是把一个数写出素数乘积的形式,这样就方便求出pot函数对应的m,而线段树就是在logn时间里找到询问区间里最大的m,总的时间复杂度是nlognAC代码:#include<bits/stdc++.h>using namespace std;const int Maxn=1e5+5;//n的最大值/*只用线段树一般把数组大小定义为Maxn<<2.原创 2021-01-22 18:15:01 · 2181 阅读 · 1 评论