![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
文章平均质量分 61
chen_minghui
这个作者很懒,什么都没留下…
展开
-
hdu 2795 线段树应用 单结点更新
题意:给一个h*w的公告栏,另有n条广告,它们是一个1*wi的矩形,按照输入的顺序,从左到右,从上到下,贴在公告栏,问它能贴在第几行,如果不能,输出-1.思路:线段树应用:每个结点l,r代表高度(h)区间,val代表这个区间最大宽度。#include#include#define Max(a,b) (a)>(b)?(a):(b)using namespace std;const i原创 2017-05-31 11:30:13 · 207 阅读 · 0 评论 -
hdu 1166 敌兵布阵 线段树模板
1,单结点更新HDU http://acm.hdu.edu.cn/showproblem.php?pid=1166#include#includeusing namespace std;const int maxn = 5*(1e5+5);int a[maxn];struct segtree{ int val;}segnode[2*maxn+1];void build(i原创 2017-05-31 08:48:33 · 777 阅读 · 0 评论 -
poj 3468 A Simple Problem with Integers 线段树模板区间更新
题意:区间更新,输出查询结果带有延时标记的区间更新更到你时就停住,用到你时候向下更:我的理解:例如更新[0-3],更新时找到[0-2],[3-3]这两个区间,修改整个区间的信息,如若区间结点的值代表整个区间的最小值,对[0-3]这个区间的操作是每个元素加1,那么更新时只需要修改[0-2]和[3-3]结点的值,两个节点最值加1,并给它们加上标记(它更到这儿就停止了,叶子节点并原创 2017-06-06 19:44:26 · 208 阅读 · 0 评论 -
POJ 2892 HDU 1540 Tunnel Warfare
题意:n个村子连成一排。之间可以互相通信。但是可能有些村子被破坏,就会阻隔通信联系。然后这些被破坏的村子能够被修复,且修复的是最近被破坏的村子。给几次询问,问与x通信联系的村子有几个,包括x自己。思路:我是直接用栈模拟,线段树也可以做。poj能过。hdu过不了:#include#include#includeusing namespace std;const int maxn原创 2017-07-13 19:34:18 · 263 阅读 · 0 评论 -
POJ 3321 Apple Tree dfs序+线段树
题目链接http://poj.org/problem?id=3321题意一颗苹果树,以1为根,含有n个结点,每个节点上都会张出苹果。现在给出m个询问 Q v代表修改v结点的状态,即有苹果就摘掉,没有苹果就让其长出苹果。 C v代表查询以v为根的子树中,包含的苹果个数。思路用dfs序的连续区间可以代表一个子树,线段树叶子节点存储对应dfs序的结点苹果的有无。然后用线段树更新查询. 用vector原创 2017-10-26 19:37:05 · 239 阅读 · 0 评论 -
POJ 3162 Walking Race 树的直径+线段树
题目链接http://poj.org/problem?id=3162题意给定一颗含n个结点的树,求每个点能走到的最远距离,挑选连续的k天 最长与最短之差不超过m,求最大k思路先求树的直径,然后线段树维护#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<vector>#include<原创 2017-10-26 21:03:03 · 247 阅读 · 0 评论 -
codeforces dfs序+线段树+bitset
题目链接http://codeforces.com/problemset/problem/620/E题意给定一个树,现在有60种颜色,要做如下操作 1 v c:将v及其子树然成c颜色 2 v:查询v及其子树中含有多少不同颜色思路用dfs序存储子树,bitset代表子树中含有的颜色。#include<cstdio>#include<iostream>#include<algorithm>#i原创 2017-10-26 19:56:01 · 241 阅读 · 0 评论 -
codeforces 799C Fountains 线段树
题意:购买喷泉有两种方式,用硬币或砖石,都有对应的价格,和美丽度。给定初始的硬币和砖石数,要求买两个喷泉且美丽度之和最大。如果不能买两个输出-1思路:三种情况:两种都用C或D,CD各一个。C,D各一个只要选择能够买得最大美丽度的喷泉。两种都用C或D,选择了一个之后,另外一个能够买得范围就确定了。#include#include#include#define ll long long原创 2017-06-21 21:02:44 · 499 阅读 · 0 评论