线段4027 hdu

动态开点线段树&线段树合并学习笔记

动态开点线段树 使用场景 $4 \times n$ 开不下。 值域需要平移(有负数)。 什么时候开点 显然,访问的节点不存在时(只会在修改递归时开点)。 trick 区间里面有负数时,$mid = (l + R - 1) / 2$。 防止越界。 例如区间 $[-1,0]$。 开点上限 考虑到 upd ......
线段 笔记 动态 amp

第二十届浙大城市学院程序设计竞赛 I.Magic Tree DFS序线段树

传送门 大致思路: ** 我们知道dfs序上的整颗子树dfs序编号连续,因为每次删除一个点或者新增一个点都导致子树上所有点的深度加一或者减一。由于是区间修改所以我们考虑dfs序上建线段树。** ** ** #include <iostream> #include <cstring> #include ......
线段 程序设计 程序 学院 城市

区间和线段树封装模板

区间和线段树封装模板,开箱即用 注意:线段树大小最多支持$2^{30}-1$个数 声明方法: SegSumTree<typename>st,typename为线段树存储的类型(建议只填写整数类型),建立一颗空线段树,后续必须先用rebuild或resize初始化 SegSumTree<typenam ......
线段 区间 模板

hdu-5306(区间最值+线段树)

hdu Gorgeous Sequence HDU - 5306 题意: 给定一个长度为n的区间,做m次操作,三种操作 对于序列[L,R]区间中的每个a~i~,用min(a~i~,x)替换。 打印序列[L,R]区间的最大值 打印序列[L,R]区间和 因为区间和与区间最值无关,所以无法直接用简单的标记 ......
线段 区间 5306 hdu

hdu-4614(线段树+二分)

hdu 4614 题目: Alice is so popular that she can receive many flowers everyday. She has N vases numbered from 0 to N-1. When she receive some flowers, sh ......
线段 4614 hdu

Magic Tree (在线->离线, 线段树/树状数组维护) 第二十届浙大城市学院程序设计竞赛

题目大意: 给出一个树,然后m询问,3种操作 1 在节点u, 和fa[u] 在他们增加一个节点 2 删除一个节点, 把儿子接到父亲上 3 查询某个节点的深度 思路: 直接在线去处理增加和删除是很不好操作的 于是考虑离线把这个树建出来 然后每次修改只会的对儿子树造成影响, 这里可以用线段树,或者树状数 ......
线段 数组 程序设计 程序 学院

hdu - 4578(线段树)

题目:Yuanfang is puzzled with the question below: There are n integers, a1, a2, …, an. The initial values of them are 0. There are four kinds of operati ......
线段 4578 hdu

华为机试 最少数量线段覆盖

本期题目:最少数量线段覆盖 题目 给定坐标轴上的一组线段,线段的起点和终点均为整数并且长度不小于 1, 请你从中找到最少数量的线段,这些线段可以覆盖住所有线段。 输入 第一行输入为所有线段的数量,不超过 10000 , 后面每行表示一条线段,格式为 x,y,x 和 y 分别表示起点和终点,取值范围是 ......
线段 数量

权值线段树、树状数组应用

权值线段树类应用 最近因为练蓝桥杯,总算搞明白这些东西了(高中三年没搞明白233),放在一起总结一下 树状数组逆序对 经过处理,离散化 和上面的正好是反过来 上面是位置不变 按照大小排序,第一个最大的在位置$4$ ,而下面的排序更好理解,第$i$个数代表原来第 $i$ 个数在原数组中大小排序后的位置 ......
线段 数组

hdu4027 (线段树)

题目: 很多邪恶的战列舰在战斗前被安排在一条线上。我们的指挥官决定使用我们的秘密武器来消灭战列舰。每艘战列舰都可以被标记为耐力值。对于我们秘密武器的每次攻击,它都可以降低战列舰连续部分的耐力,使它们的耐力达到其原始耐力值的平方根。在我们的秘密武器的一系列攻击中,指挥官想要评估武器的效果,所以他向你寻 ......
线段 4027 hdu

线段树模板复习

建树 void build(int l,int r,int rt) { if(l==r) { t[rt]=a[l]; return; } int mid=(l+r)>>1; build(l,mid,rt<<1); build(mid+1,r,(rt<<1)|1); t[rt]=t[rt<<1]+t[ ......
线段 模板

Codeforces Gym 103931F - Forest of Magic(时间轴分块+线段树合并)

一个巨烦的时间轴分块做法,有点类似于 P2137 Gty的妹子树 先考虑静态的情况。看上去就一脸线段树合并对吧?一次修改的操作对一个点 $x$ 贡献可以写成 $k·dep_x+b$ 的形式,开两棵线段树合并维护一次项和零次项系数即可。 由于静态问题可做,因此考虑时间轴分块。设阈值 $B$,每 $B$ ......
线段 Codeforces 103931F 时间 103931

CAD如何测量连续线段长度?CAD测量连续线段长度步骤

在CAD绘图过程中,经常会绘制一些连续的线段,如果想要知道这些连续线段长度的话,该怎么操作吗?CAD如何测量连续线段长度?下面小编就以浩辰CAD软件为例来给大家分享一下CAD测量连续线段长度的具体操作步骤吧! CAD测量连续线段长度步骤: 浩辰CAD软件中已经考虑到了这种需求,在CAD测量命令(DI ......
线段 长度 CAD 步骤

hdu3595 GG and MM Every SG博弈

这是一道很神奇的题,神奇的地方在于全网这个模型只有这题 什么是Every SG? 不同于普通的ICG,它由多个游戏同时进行,且必须同时进行 比如这道题,要求先手一次对所有石头堆都要操作 显然对于单独的每种情况,我们都可以求出这是必败态还是必胜态 现在摆在我们眼前的就有一堆游戏,对于每个游戏,你其实是 ......
Every 3595 hdu and GG

hdu3980 Paint Chain SG函数+SG定理+记忆化搜索

liyishui今天学习博弈,因为liyishui今天写树链剖分写得有点理智-- 题意: 有一个圆,上面有n个豆子,每次要挑出连续m个没染色的豆子进行染色,不能移动时输掉游戏 问先手必胜还是后手必胜,其中n、m<=1000 题解: 会很朴素地想到如果第一个人拿走了m个,那么剩下的就是一条链的问题。 ......
定理 函数 记忆 Paint Chain

CF1295E Permutation Separation 题解 线段树优化dp

题目链接:https://codeforces.com/problemset/problem/1295/E 题目大意: 将排列 $p_1, p_2, \ldots, p_n$ 先分成 $p_1, \ldots, p_k$ 与 $p_{k+1}, \ldots, p_n$ 两个集合。 然后可以将元素从 ......
线段 题解 Permutation Separation 1295E

bzoj3531 [Sdoi2014] 旅行 树链剖分+动态开点线段树

哈哈哈哈没想到居然会是第一道动态开点线段树 之前一直想学,模板还没调过,结果在这里遇到了 题解: 有个很朴素的想法是对每个宗教开一棵线段树 但是这样1e5*1e5,空间会炸 考虑像主席树那样动态开点,需要的时候再开辟新节点,显然新增的节点不会很多 开辟新节点也很简单: if(ql<=mid) { i ......
线段 动态 bzoj 3531 2014

产生冠军 HDU - 2094(连通/思维)

题意:有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛。 球赛的规则如下: 如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C。 如果A打败了B,B又打败了C,而且,C又打败了A,那么A、B、C三者都不可能成为冠军。 根据这个规则,无需循环较量,或许 ......
思维 冠军 2094 HDU

确定比赛名次 HDU - 1285 (拓扑排序)

题意:有N个比赛队(1≤N≤500),编号依次为1,2,3,...,N 进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。 符合条件的排名 ......
拓扑 名次 1285 HDU

Transformation HDU - 4578

题目链接 $1$ 题目链接 $2$ 题解 设一个区间的和、平方和、立方和分别是 $sum_0,sum_1,sum_2$ 对于 $add$ 操作,推推公式可知 $\begin{cases}newsum_2=sum_2+val^3\times len+3\times val\times sum_1+3\ ......
Transformation 4578 HDU

More is better HDU - 1856 (带权并查集)

题意:房间里一共有 $10^7$个人,人与人直接有直接或者间接的朋友关系。 最多可以选择多少有朋友关系的人? 分析:求最大连通块。 带权并查集,父节点同时维护数量。 dfs/bfs 求最大连通块。 #include <bits/stdc++.h> using namespace std; typed ......
better More 1856 HDU is

Catch HDU - 3478 (二分图)

题意:我们把一个城市考虑为一个图, 街道为边, 路口为点, 路口标记为 0~N-1. 盗贼从一个点开始逃亡, 每一分钟走一条边。不幸的是, 我们并不知道他逃往何处, 只能假设他每分钟都必须沿着一条边走, 不能停留但是可以反复经过。警官想要知道是否存在一个时刻, 盗贼可能出现在城市中的任意路口。 分析 ......
Catch 3478 HDU

[USACO08FEB]Hotel G 线段树区间合并|维护最长的连续1

这个还是看代码,比讲的清楚 #include<bits/stdc++.h> #define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) #define ls (rt<<1) #define rs (rt<<1|1) u ......
线段 区间 USACO Hotel FEB

hdu6601 Keen On Everything But Triangle 主席树+斐波那契数列妙用

题意: 给定序列a,ai为第i根木棍长度,给出q个询问 每次问[L,R]内能构成三角形的最大周长是多少 题解: 属于那种没有往这个方向想就很难想到,然后一直想不到的题2333 因为周长要最大,贪心地优先考虑第一大,第二大,第三大能不能组成合法的三角形 假设不行,那第一根肯定是废了 因为任意两边之和大 ......
数列 妙用 Everything Triangle 主席

浅谈线段树分治

有的时候,我们需要维护删除操作,而有很多操作是不支持删除或无法快速删除,我们就考虑将所有的操作离线,在时间轴上建线段树,将一个操作和他的删除看作是对于时间轴的有一段区间的操作。 这样,我们就可以更加方便地维护某些操作的删除了。 二分图 一个 $n$ 个点的图,有 $m$ 条边,第 $i$ 条边连接 ......
线段

线段树模板,两种实现方式(结构体一维数组模拟满二叉树、结构体+链式存储)

简单总结下线段树值得注意的点,对于什么是线段树,网上有非常多大佬写的非常的详细,我这里只是给大家提供两个不同存储结构实现的线段树模板 线段树 主要是实现区间操作,区间查询,有懒标记的线段树能够实现区间更新(包含单点更新),没有懒标记的则只有单点更新(其实也可以区间更新只不过这样是O(n)的时间没啥意 ......
结构 线段 数组 模板 方式

bzoj 5361: [Lydsy1805月赛]对称数 可持久化线段树 思路|无代码

2333居然有一天做题会做到找来找去找不到oj有这道题 虽然说HydroOJ保存了不少bzoj的题,但总归仍不是非常完善,bzoj你为什么不争气点—— 题意: 给定一棵树,n个点,每个点有点权 给出m条询问,每次问(u,v)的路径上出现了偶数次的最小数 题解: 出现了偶数次,联想到异或和为0,但是直 ......
线段 思路 代码 Lydsy bzoj

hdu-4630(树状数组)

题目: Life is a game,and you lose it,so you suicide.But you can not kill yourself before you solve this problem:Given you a sequence of number a1, a2, . ......
数组 4630 hdu

「线段树」!(简单)的线段树

本题为3月20日23上半学期集训每日一题中B题的题解 题面 题目描述 给你一个序列 $A[1],A[2],...,A[n]$ .( $|A[i]| \leq 15007, 1 \leq N \leq 50,000$ ). M( $1 \leq M \leq 500,000$ ) 次询问,每次询问 $ ......
线段

线段树

#include<cstdio> #pragma warning (disable:4996) using namespace std; int a[10001]; //结构体,存线段树 struct node { int l, r, v; }tree[40001]; //建树 void make_ ......
线段