随笔分类 - 线段树
摘要:题目大意: 一个数列,求有多少个区间$[l,r]$满足该区间的众数出现次数大于$\lceil \frac{r-l}{2} \rceil$ 思路: 对于一个区间满足条件的众数明显是唯一的 所以设该数的前缀和数组为$S$ 则一个区间$(l,r]$满足条件满足$2 \times (S_r-S_l)>(r-
        阅读全文
                
摘要:T1 exploit 题目大意: 一棵树 每个点中有能量井,每个时刻,第$i$口井中回复$v_i$的能量;每口井有能量上限$l_i$ $Q$次询问 每次询问$t,x,k$表示在$t$时刻提取$x$的子树中与$x$距离不超过$k$的井的能量 并输出提取的能量之和 保证$t$递增 思路: 首先题目被分为
        阅读全文
                
摘要:T1 bzoj 4730 Alice和Bob又在玩游戏 题目大意: Alice和Bob在玩游戏 n个节点,m条边(0<=m<=n-1),构成若干棵有根树,每棵树的根节点是该连通块内编号最小的点 Alice和Bob轮流操作,每回合选择一个没有被删除的节点x,将x及其所有祖先全部删除,不能操作的人输 思
        阅读全文
                
摘要:题目大意: 一个数列 q次询问 每次询问l r 将数列中l-r的位置排序去重后的数列成为b 输出 sigma b i * F i (其中F i为斐波那契数列中的第i项) 思路: 由于要去重 考虑权值线段树 于是先把整个数列离散 区间+不会=莫队 由于n为30000 考虑每次修改log n的复杂度 用
        阅读全文
                
摘要:水平太菜暴力写挂被汪神踩的一次考试 耻辱#2 T1 game 题目大意: 有一个n×n的01方格,要从中选出一个面积最大的矩形区域,要求这个矩形区域不能有超过k个1 输出这个面积 思路: 枚举起点后 再枚举一维长度 可以发现另一维长度是单调的 n三方暴力即可 1 #include<iostream>
        阅读全文
                
摘要:T2模的不够多AK失败 被熊神和低年级爆踩的一次模拟赛 T1 timezone 题目大意: 一趟飞机的起降时间皆为当地时间(考虑时差) 现在已知A-B的航班的起降时间与B-A的航班的起降时间 求这个航班的真实飞行时间 思路: 设时间分别为a b c d 可以想到把b和c重合 然后用d-a/2 随便搞
        阅读全文
                
摘要:又是AK失败的一天 T1 小M的算式 题目大意: 一个数字组成的字符串 每两个字符间可以加入+或=或不加入符号(整个串只能加入一个=) 求这个字符串能否变成一个等式 思路: 爆搜 枚举一下等号出现位置 1 #include<iostream> 2 #include<cstdio> 3 #includ
        阅读全文
                
摘要:noip2017 D2T3 列队 某zz选手当时直接放弃了写了50还写错了 题目大意: 有一个n行m列的方阵,第i行j列的点编号为(i-1)m+j 每次把第x行y列的点拿出来,然后把这一行它之后的点都向左推,把最后一列x行之后的点都向上推 然后把拿出来的点放到最后一个位置,询问这个点的编号 思路: 
        阅读全文
                
摘要:D1T1 D1T2 D1T3 D2T1 D2T2 D2T3
        阅读全文
                
摘要:题目大意: 直线上有n个炸弹有坐标x和半径r 当一个炸弹被引爆时 若有炸弹的坐标在该炸弹坐标+-r范围内则另一个炸弹也被引爆 求先引爆每一个炸弹最终会引爆多少炸弹 思路: 可以想到n平方连边然后tarjan缩点跑拓扑 可以通过线段树来优化建图 对每个点向它能直接引爆的左右范围连边 即用线段树中的线段
        阅读全文
                
摘要:题目大意: 一个无向图 每个点有权值 支持两个操作 1 修改某个点的权值 2 查询a-b所有简单路径的点上的最小值 思路: 可以把图变成圆方树 然后树链剖分 维护 对于每个方点使用可删堆维护 1 #include<iostream> 2 #include<cstdio> 3 #include<cma
        阅读全文
                
摘要:非常简单的一次模拟赛 但是由于水平太菜AK失败 T1 loj 507 接竹竿 题目大意: 一些纸牌 每个纸牌有花色分数 按顺序放入每个牌 放入每张牌之前 若牌中已有与这张牌花色相同的牌 可以选择将这张牌和任意一张花色相同的牌之间的所有牌全部取出,并得到与取出的所有牌点数和相同的分数 求最大得分 思路
        阅读全文
                
摘要:题目大意: 给出若干条线段,用 (x1,y2),(x2,y2) 表示其两端点坐标,现在要求支持两种操作: 0 x1 y1 x2 y2 表示加入一条新的线段 (x1,y2),(x2,y2) 1 x0 询问所有线段中,x坐标在 x0  处的最高点的 y 坐标是什么,如果对应位置没有线段,则输出 思路
        阅读全文
                
摘要:题目大意: n个城市构成一个树 m支军队 每只军队守卫 在xi到yi的最短路径上的城市 q个重要人物从vi出发 找到离根最近的点使从vi到这个点上所有路径都可以被至少ki个军队完全覆盖 输出每个答案的点的深度 思路: 对于每个军队 可以拆成两个链 在深度较大的节点的权值线段树上把深度较低的点+1 然
        阅读全文
                
摘要:题目大意: 一棵树,每个点有颜色 支持四种操作: 单点改颜色/权值 查询两点间路径上与起点或终点的颜色一样的点的权值和/最大值 思路: 动态开点 树链剖分 重点在动态开点 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 
        阅读全文
                
摘要:T1 方案统计 题目大意: 给出一棵n个节点的无根树,其中m个节点是特殊节点,求对于任意0<=i<=m,包含i个特殊节点的联通块个数 思路: 树形dp dp i j表示以i为根的子树 包含j个特殊节点的联通块个数 转移就是枚举该节点任意两个子树 dp i j+k += dp to[i] j * dp
        阅读全文
                
摘要:T1 树上路径最小值 题目大意: 带点权的树 q次询问求每两个点之间路径上最小的点权 思路: 倍增lca裸题 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstdlib> 5 #include<cstrin
        阅读全文
                
摘要:这章的数据结构题很真实 T1 排队 bzoj 1699 题目大意: 求静态一些区间的最大值-最小值 思路: ST表裸题 1 #include<iostream> 2 #include<cstdio> 3 #include<cstdlib> 4 #include<cstring> 5 #include
        阅读全文
                
摘要:T1:loj 6029 市场 题目大意: 维护一个数据结构支持区间加 区间除法 区间求最小值 区间求和 思路: 用线段树维护区间加 区间求最小值 区间和 对于区间除法 注意到除数d很大而加法的w很小 尝试将区间除法变成区间减法 可以转化成减法的情况就是除法的时候减的数相同即区间内所有数相同或最小数和
        阅读全文
                
摘要:题目大意: 一些人,每个人的身高都是不一样的 然后再给你一个k,表示这个人的左边或者右边,有k个人比他高 然后让你构造一个满足条件且字典序最小的序列 思路: 按照权值排序 这样每次加进去后只有后面的才会比它大 加的时候需要在前面或后面留出k个空间 选出位置靠前的那个加入使字典序最小 如果两个位置都被
        阅读全文
                
                    
                
浙公网安备 33010602011771号