首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
loj 线段树 jiangly
2024-10-20
LOJ2319. 「NOIP2017」列队【线段树】
LINK 思路 神仙线段树 你考虑怎么样才能快速维护出答案 首先看看一条链怎么做? 首先很显然的思路是维护每个节点的是否出过队 然后对于重新入队的点 直接在后面暴力vector存一下就可以了 最核心的思路就是假设你已经知道了当前位置的点是什么编号,最后通过计算/查询来得出答案 然后不是链的情况其实就动态开点就可以了 因为有用的状态很少 然后就直接进行查询就可以了 //Author: dream_maker #include<bits/stdc++.h> using namespace std;
LOJ#3043.【ZJOI2019】 线段树 线段树,概率期望
原文链接www.cnblogs.com/zhouzhendong/p/ZJOI2019Day1T2.html 前言 在LOJ交了一下我的代码,发现它比选手机快将近 4 倍. 题解 对于线段树上每一个节点,维护以下信息: 1. 这个点为 1 的概率. 2. 这个点为 0 ,且它有祖先是 1 的概率. 其中,第一种东西在维护了 2. 的情况下十分好求. 第二种东西,只有两类: 1. 一次线段树操作涉及到所有的节点,显然只要乘 0.5 . 2. 某些节点打了标记之后,它的所有子孙都被他影响了.于是我们
LOJ.2864.[IOI2018]排座位(线段树)
LOJ 洛谷 先令编号从\(1\)开始.我们要求\([1,i]\)这些数字能否构成一个矩形. 考虑能否用线段树维护,让每个叶子节点\(i\)表示前\(i\)个数能否构成矩形. 一种方法是维护前\(i\)个点最左上点和最右下点的坐标,直接判断这两个点构成的矩形面积是否是\(i\). 发现修改的时候这个最值不好维护,每次修改可能是\(O(n)\)的. 考虑合法矩形的特征.把前\(i\)个点标记为黑点,其余点是白点.那么前\(i\)个点构成了一个矩形当且仅当: 左边和上边都是白点的黑点有且只有一个.
LOJ #2537. 「PKUWC 2018」Minimax (线段树合并 优化dp)
题意 小 \(C\) 有一棵 \(n\) 个结点的有根树,根是 \(1\) 号结点,且每个结点最多有两个子结点. 定义结点 \(x\) 的权值为: 1.若 \(x\) 没有子结点,那么它的权值会在输入里给出,保证这类点中每个结点的权值互不相同. 2.若 \(x\) 有子结点,那么它的权值有 \(p_x\) 的概率是它的子结点的权值的最大值,有 \(1-p_x\) 的概率是它的子结点的权值的最小值. 现在小 \(C\) 想知道,假设 \(1\) 号结点的权值有 \(m\) 种可能性,权值第 \(i
LOJ #2359. 「NOIP2016」天天爱跑步(倍增+线段树合并)
题意 LOJ #2359. 「NOIP2016」天天爱跑步 题解 考虑把一个玩家的路径 \((x, y)\) 拆成两条,一条是 \(x\) 到 \(lca\) ( \(x, y\) 最近公共祖先) 的路径,另一条是 \(lca\) 到 \(y\) 的路径.(对于 \(x, y\) 是 \(lca\) 的情况需要特殊考虑一下就行了) 这个求 \(lca\) 的过程用倍增实现就行了. 假设令到达时间为 \(at\) . 不难发现,在树上向上的路径满足 \(dep_u + at_u=d_1\) (深度
【LOJ#6029】市场(线段树)
[LOJ#6029]市场(线段树) 题面 LOJ 题解 看着就是一个需要势能分析的线段树. 不难发现就是把第二个整除操作化为减法. 考虑一下什么时候整除操作才能变成减法. 假设两个数为\(a,b\).那么就有\(\displaystyle a-[\frac{a}{d}]=b-[\frac{b}{d}]\). 那么假设\(a,b\)整除的结果分别为\(aa,bb\).\(a=d*aa+p_a,b=d*bb+p_b\) 得到:\(\displaystyle (d-1)aa+p_a=(d-1)bb+p
BZOJ5291/洛谷P4458/LOJ#2512 [Bjoi2018]链上二次求和 线段树
原文链接http://www.cnblogs.com/zhouzhendong/p/9031130.html 题目传送门 - LOJ#2512 题目传送门 - 洛谷P4458 题目传送门 - BZOJ5291 推荐LOJ和洛谷,题面质量好,而且不卡常数. BZOJ题面烂,而且要卡那么一点点常数. 题意 有一条长度为$n$的链$\forall 1≤i<n$,点$i$与点$i+1$之间有一条边的无向图),每个点有一个整数权值,第$i$个点的权值是$a_i$.现在有$m$个操作,每个操作如下: 操
LOJ.2585.[APIO2018]新家(二分 线段树 堆)
LOJ 洛谷 UOJ BZOJ 四OJ Rank1 hhhha 表示这个b我能装一年→_→ 首先考虑离线,将询问按时间排序.对于每个在\([l,r]\)出现的颜色,拆成在\(l\)加入和\(r+1\)删除两个操作,也按时间排序. 对于询问\((x,t)\),就是求\(t\)时刻,离\(x\)最远的颜色到\(x\)的距离,也就是从\(x\)出发往左右至少要走多远才能经过所有颜色. 考虑二分答案.那么就成了,求所有颜色是否都在\([x-mid,x+mid]\)中出现过. 对于这种是否出现过/只计算一
LOJ 2991 「THUSC 2016」补退选——trie+线段树合并或vector
题目:https://loj.ac/problem/2291 想了线段树合并的做法.就是用线段树维护 trie 的每个点在各种时间的操作. 然后线段树合并一番,线段树维护前缀最大值,就是维护最大子段和的套路,记录区间和.前缀 max .查询的时候,因为当前区间只记录了自己区间内部的前缀 max 值,所以要加一个 pr 表示该区间前面的区间和. 空间可能爆? RE 就没管.后来发现是 go[ ][ ] 开成 N 而非 M 了.这个做法还是可过的. 注意强制在线的 ans 是带绝对值的.注意 mx
LOJ 3043: 洛谷 P5280: 「ZJOI2019」线段树
题目传送门:LOJ #3043. 题意简述: 你需要模拟线段树的懒标记过程. 初始时有一棵什么标记都没有的 \(n\) 阶线段树. 每次修改会把当前所有的线段树复制一份,然后对于这些线段树实行一次区间修改操作. 即每次修改后线段树棵数翻倍,第 \(i\) 次修改后,线段树共有 \(2^i\) 棵. 区间修改操作的伪代码如下: 和我日常写的递归式线段树完全一致. 每次询问你这些线段树中有懒标记的节点总数. 修改和询问的总个数为 \(q\),\(1\le n,q\le 10^5\). 题解: 灵感来
LOJ 534 花团(线段树+dfs栈)
题意 https://loj.ac/problem/534 思路 又是复杂度错误的一题,\(O(n^2\log n)\) 能过 \(15000\) . 虽然看起来强制在线,其实是一道假的在线题.首先按时间建立线段树,先序遍历整棵树,到叶子时进行更新并回答询问. 更新时将物品当做标记,打到线段树上 ,遍历到一个节点时,都在上面做背包,往儿子走时将背包数组拷贝下来,到另一个儿子重新拷贝一次,故背包个数和深度相同. 询问时由于已经维护好了目前的背包,可以直接询问. 这就是\(\text{dfs}\)
LOJ 2585 「APIO2018」新家 ——线段树分治+二分答案
题目:https://loj.ac/problem/2585 算答案的时候要二分! 这样的话,就是对于询问位置 x ,二分出一个最小的 mid 使得 [ x-mid , x+mid ] 里包含所有种类的商店. 判断一个区间里包含所有种类商店的方法是对于每种商店,记录每个这种商店的同类型前驱:然后看看 [ x+mid+1 , INF ] 里所有种类商店的前驱最小值是不是 < x+mid 就行了. 实现方法就是对于每个种类开一个 set 维护该种类商店的所有位置,再对所有种类开一个线段树维护这个区间
LOJ 2312(洛谷 3733) 「HAOI2017」八纵八横——线段树分治+线性基+bitset
题目:https://loj.ac/problem/2312 https://www.luogu.org/problemnew/show/P3733 原本以为要线段树分治+LCT,查了查发现环上的值直接是 dis[ u ] ^ dis[ v ] ^ w[ i ] 就行了(其中 u , v 是边的两端, i 是边的标号). 再看一下题,发现一开始一定是连通的.所以剩下的就和 bzoj 4184 shallot 一样用线性基就行了. 因为有 1000 位,所以用 bitset . 线性基求最大值原来
LOJ 121 「离线可过」动态图连通性——LCT维护删除时间最大生成树 / 线段树分治
题目:https://loj.ac/problem/121 离线,LCT维护删除时间最大生成树即可.注意没有被删的边的删除时间是 m+1 . 回收删掉的边的节点的话,空间就可以只开 n*2 了. #include<cstdio> #include<cstring> #include<algorithm> #include<map> #define mkp make_pair #define ls c[x][0] #define rs c[x][1] usin
【Loj#535】花火(线段树,扫描线)
[Loj#535]花火(线段树,扫描线) 题面 Loj 题解 首先如果不考虑交换任意两个数这个操作,答案就是逆序对的个数. 那么暴力就是枚举交换哪个两个数,然后用数据结构之类的东西动态维护逆序对. 但是这样还不够. 仔细观察哪些点交换了才有意义. 假设交换的位置是\(l,r\) 首先必须有\(h[l]\gt h[r]\),这个很显然,如果把一个更大的数换到了前面显然不优. 其次,\(l\)必须是前缀的最大值. 如果\(l\)不是前缀最大值,那么存在一个位置\(i\)满足\(h[i]\gt h[l
【LOJ#573】【LNR#2】单枪匹马(线段树)
[LOJ#573][LNR#2]单枪匹马(线段树) 题面 LOJ 题解 考虑拿线段树维护这个值,现在的问题就是左右怎么合并,那么就假设最右侧进来的那个分数是\(\frac{x}{y}\)的形式,那么就可以维护一下每一个值的系数,就可以直接合并了. 我代码又臭又长,还写得贼复杂 #include<iostream> #include<cstdio> using namespace std; #define MOD 998244353 #define MAX 1000500 #defi
Loj #2570. 「ZJOI2017」线段树
Loj #2570. 「ZJOI2017」线段树 题目描述 线段树是九条可怜很喜欢的一个数据结构,它拥有着简单的结构.优秀的复杂度与强大的功能,因此可怜曾经花了很长时间研究线段树的一些性质. 最近可怜又开始研究起线段树来了,有所不同的是,她把目光放在了更广义的线段树上:在正常的线段树中,对于区间 \([l, r]\),我们会取 \(m = \lfloor \frac{l+r}{2} \rfloor\),然后将这个区间分成 \([l, m]\) 和 \([m + 1, r]\) 两个子区间.在广义
loj#2255. 「SNOI2017」炸弹 线段树优化建图,拓扑,缩点
loj#2255. 「SNOI2017」炸弹 线段树优化建图,拓扑,缩点 链接 loj 思路 用交错关系建出图来,发现可以直接缩点,拓扑统计. 完了吗,不,瓶颈在于边数太多了,线段树优化建图. 细节 建新图要判重. 内存永远算不对 代码 #include <bits/stdc++.h> #define ll long long using namespace std; const int N=1e6+7,mod=1e9+7; ll read() { ll x=0,f=1;char s=getc
[loj#2005][SDOI2017]相关分析 _线段树
「SDOI2017」相关分析 题目链接:https://loj.ac/problem/2005 题解: 把上面的式子拆掉,把下面的式子拆掉. 发现所有的东西都能用线段树暴力维护. 代码: #include <bits/stdc++.h> #define N 100010 #define ls p << 1 #define rs p << 1 | 1 using namespace std; typedef double db; typedef double ll; ll
【LOJ】#3109. 「TJOI2019」甲苯先生的线段树
LOJ#3109. 「TJOI2019」甲苯先生的线段树 发现如果枚举路径两边的长度的话,如果根节点的值是$x$,左边走了$l$,右边走了$r$ 肯定答案会是$(2^{l + 1} + 2^{r + 1} - 3)x + t$,可以发现$t < (2^{l + 1} + 2^{r + 1} - 3)$,于是考虑计算对于$t$,左边走了$l$,右边走了深度$r$,几种走法使得总和为$t$ 容易发现右边最小一定是走了$2^ - 1$于是可以扣掉 再发现我们其实是对于左边和右边串选择长度为$[1,l
【LOJ】#3043. 「ZJOI2019」线段树
LOJ#3043. 「ZJOI2019」线段树 计数转期望的一道好题-- 每个点设两个变量\(p,q\)表示这个点有\(p\)的概率有标记,有\(q\)的概率到祖先的路径上有个标记 被覆盖的点$0.5p + 0.5 \rightarrow p ,0.5q + 0.5\rightarrow q $ 被覆盖的点子树中的点\(p\rightarrow p,0.5q + 0.5 \rightarrow q\) 经过的点\(0.5p \rightarrow p,0.5q \rightarrow q\) 未
热门专题
JObject 压缩json
phpstorm如何修改文件头部颜色
supplyAsync 异常
rinkeby测试币
R语言fisher.test
中心极限定理 t分布
modal有弹窗的意思吗
vmware workstation 远程控制台api
phpmyadmin 2.8.0.2漏洞
Oracle的RAW大小
Windows 挂载ftp当硬盘 driver
threejs Particle 参数配置说明
根据坐标抛物线拟合 matlab
obb error更适合于bagging
区块链java开发智能合约
k8s集群重启后kubelet启动报错影响
pycharm后台运行py
uirecoder版本升级
wpf 界面缩放任务栏
debian 文件尺寸不符