线段tjoi 2007

P6370 [COCI2006-2007#6] KAMEN 题解

原题链接:P6370 思路 题意不多赘述。 首先这道题的 \(60\) 分暴力很好打,直接按题目中的操作做即可,时间复杂度 \(O(nr)\)。 考虑优化暴力。我们会发现很多次石头的起始点为同一列的情况,其实每一次下落的轨迹是差不多的。具体来讲应该是第一次下落的轨迹一定包含了后面每一次的轨迹。所以我 ......
题解 P6370 KAMEN 6370 2006

P3464 [POI2007] WAG-Quaternary Balance 题解

题意 给定一个数 \(n\),要求将 \(n\) 表示成一些 \(4^{k}\) 的数之和或差的形式,要求用的数最少,求方案数。 思路 首先看到这道题的数据范围 \(n\le10^{1000}\),又是求方案数,所以想到用数位 DP。因为每一个数都是 \(4\) 的次幂,显然我们需要讲原数转化为 \ ......

线段树详解

定义 什么是线段树 线段树是一种二叉搜索树,每个节点都存储了一个区间的问题。 能够解决的问题 序列维护修改以及查询区间上的最值、求和等,修改和查询的时间复杂度为 \(O\)(\(log\) \(n\))。 与其他 RMQ 算法的区别 算法 适用范围 优点 缺点 线段树 动态 可执行的操作多 常数大 ......
线段

简单线段树

一、什么是线段树? 线段树是怎样的树形结构? 线段树是一种二叉搜索树,每个结点都存储了一个区间,也可以理解成一个线段,你要从这些线段上进行搜索操作得到你想要的答案。 线段树能够解决什么样的问题? 线段树的适用范围很广,可以在线维护修改以及查询区间上的最值,求和。 需要注意的是,线段树只可以维护满足结 ......
线段

CF1784C Monsters (hard version) 题解 线段树

题目链接:https://codeforces.com/problemset/problem/1784/C 题目大意: 你面前有 \(n\) 只怪兽,每只怪兽都有一个初始血量,你可以进行两类操作: 操作1:选择任意一个血量大于 \(0\) 的怪兽,并将它的血量降低 \(1\); 操作2:将所有存活的 ......
线段 题解 Monsters version 1784C

线段树

线段树 什么是线段树 线段树(英语:Segment tree)是一种二叉树形数据结构,1977年由Jon Louis Bentley发明[1],用以存储区间或线段,并且允许快速查询结构内包含某一点的所有区间。 一个包含n个区间的线段树,空间复杂度为O(n),查询的时间复杂度则为O(logn+k)}, ......
线段

P2053 [SCOI2007] 修车

题意 有 \(n\) 个工人,\(m\) 个工作。 每个人给每个工作有 \(t_{i, j}\) 的花费。 求每个工作的最小平均花费。 Sol 直接连边跑费用流不好搞。 考虑将每种工人在不同时间做的工作暴力建点。 枚举 \(k\) 表示第 \(i\) 个工人在倒数第 \(k\) 个做 \(j\) 工 ......
P2053 2053 2007 SCOI

刷题 ST表、单调栈、线段树->区间最值

2023.12.13 cf1904D2 解题思路 首先,a[i]大于b[i]时肯定不行,等于就满足了,直接过掉 其次,要想使得a[i]等于b[i],就要在a[i]左右找最近的j使得a[j]=b[i](最近的最优,可证) k是i和j中间的一个数,想要满足题意,要满足以下两个条件(a[j]=b[i]) ......
线段 区间 gt

【线段树入门】P3353 在你窗外闪耀的星星(区间求和)

这题正解是前缀和,我用线段树练练手>< 1 1 //笔记-自用 2 2 //#pragma GCC optimize("Ofast") 3 3 //#pragma GCC optimize("unroll-loops") 4 4 #define _CRT_SECURE_NO_WARNINGS 5 5 ......
线段 区间 星星 P3353 3353

【线段树入门】 P1198 最大数(区间最大值+无懒标记+末尾插入)

1 //笔记-自用 2 //#pragma GCC optimize("Ofast") 3 //#pragma GCC optimize("unroll-loops") 4 #define _CRT_SECURE_NO_WARNINGS 5 #define All(a) a.begin(),a.en ......
线段 最大值 末尾 区间 标记

线段树入门】P3870 开关(区间异或和)

1 // 2 //#pragma GCC optimize("Ofast") 3 //#pragma GCC optimize("unroll-loops") 4 #define _CRT_SECURE_NO_WARNINGS 5 #define All(a) a.begin(),a.end() 6 ......
线段 区间 P3870 3870

【线段树入门】P3373 线段树 2(区间乘加)

//笔记-自用 //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") #define _CRT_SECURE_NO_WARNINGS #define All(a) a.begin(),a.end() #defin ......
线段 区间 P3373 3373

[SCOI2007] 修车

[SCOI2007] 修车 题目描述 同一时刻有 \(N\) 位车主带着他们的爱车来到了汽车维修中心。 维修中心共有 \(M\) 位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的。 现在需要安排这 \(M\) 位技术人员所维修的车及顺序,使得顾客平均等待的时间最小。 说明:顾客的等待时 ......
SCOI 2007

P4170 [CQOI2007] 涂色(天赋哥不要点进来)

前言 翻遍洛谷题解,看到大家都在套模板,却很少有人讲出为什么,使我十分崇拜天赋哥。 原题链接 关于这题的一些事实性证据 事实1.来自 事实2.来自 事实3.来自 事实4.来自 整理上述事实 1.每一次”最短“最优涂色,要么在其他颜色的基础上涂,这称之为融入一个整体;要么另辟蹊径单独找一块地涂,这称为 ......
天赋 要点 P4170 4170 2007

2020年初一初二集训队(线段树) 基本操作

其他 线段树详解与实现 - 知乎⁤ (zhihu.com) 线段树 - OI Wiki (oi-wiki.org) 线段树 学习笔记 - xujindong 的博客 - 洛谷博客 (luogu.com.cn) 简介 线段树(segment tree)是一种二叉搜索树,也是平衡二叉树,它的每一个结点对 ......
集训队 线段 基本操作 2020

可持久化线段树(主席树)

给定 n 个整数构成的序列 a,将对于指定的闭区间 [l,r] 查询其区间内的第 k 小值。 题目一开始的离散化复杂度为\(O(n\log n)\),构建基础主席树复杂度为\(O(n\log n)\),统计并插入的复杂度是\(O(n\log n + n\log n)=O(n\log n)\),询问的 ......
线段 主席

线段树模板区间加(含懒标记)

const int N = 1e5 + 10; int n, m; int a[N]; struct Tree{ int l,r; ll sum,add; }tr[4*N]; void build(int u,int l,int r){ // l=tr[u].l;r=tr[u].r; //注释掉的部 ......
线段 区间 标记 模板

线段树

首先是建树 我们先构建整棵树的框架 struct node { int l,r; string data; }g[N*4];//不一定非要构建结构体,看题目需求,如果不涉及左右范围的话就可以直接构造数组 //n表示的是树上每个结点的数值,比如说第一个结点为1,那莫第一个结点的左子树为2,右子树为3/ ......
线段

线段树优化建图

线段树优化建图学习笔记 CF786B Legacy 题意: 有 n 个点、q 次操作。每一种操作为以下三种类型中的一种: 操作一:连一条 u 到 v 的有向边,权值为 w。 操作二:连一条 u 到 [l,r] 的有向边,权值为 w。 操作三:连一条 [l,r] 到 u 的有向边,权值为 w。 求从点 ......
线段

【数据结构】线段树 (二) 学习笔记

线段树(二) 点击查看:线段树(一) 学习笔记 本文介绍权值线段树与动态开点线段树,(可能后面还会加线段树合并等等)。 权值线段树 线段树的动态开点 线段树合并 推荐题目 && 参考资料 && 拓展阅读 《算法竞赛进阶指南》 0x43 线段树 P3870 [TJOI2009] 开关 P1438 无聊 ......
线段 数据结构 结构 笔记 数据

李超线段树

问题: 洛谷P4097 在平面直角坐标系维护两个操作: 1.加入一条线段。 2.求目前平面直角坐标系中截一条直线\(x=k\)中与线段交点\(y\)最大的是那一条线段。 解决: 李超线段树模板。 首先建一个以\(x\)为区间的线段树。 和普通线段树的主要区别是在对懒标记的处理上,这里是是没有单独的下 ......
线段

线段树优化建图

问题: CF786B 给定一个\(n\)个点,\(m\)次连边的有向图,有三种连边(均有边权)方式: 1.\(u\to v\),一条\(u\)指向\(v\)的连边。 2.\(u\to [l,r]\),\(u\)向在区间\([l,r]\)的点分别连一条边。 3.\([l,r]\to v\),在区间\( ......
线段

像使用stl一样使用线段树 ——AtCoder Library(转载https://zhuanlan.zhihu.com/p/459579152)

地址:https://zhuanlan.zhihu.com/p/459579152 我这里翻译一下官方的文档。 首先需要满足几个性质。 (注意 ∗ 是个操作,不是单纯的一个乘号) 1)操作满足结合律 即 (a∗b)∗c=a∗(b∗c)2)操作需要有个幺元(基本元/单位元) a∗e=e∗a=a 如果你 ......
线段 459579152 zhuanlan AtCoder Library

【AtCoder Beginner Contest 330)】[E - Mex and Update ] 线段树+二分

本题可以用线段树+二分的方式实现。代码如下: import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.io.StreamTokenizer; // Pr ......
线段 Beginner AtCoder Contest Update

P3455 [POI2007] ZAP-Queries

题意 求 \(\sum_{i = 1} ^ {n} \sum_{j = 1} ^ {m} [gcd(i, j) = k]\)。 Sol \[\begin{aligned} f(k) &= \sum_{i = 1} ^ {n} \sum_{j = 1} ^ {m} [\gcd(i, j) = k] \ ......
ZAP-Queries Queries P3455 3455 2007

斜率优化 [ZJOI2007] 仓库建设

[ZJOI2007] 仓库建设 题目描述 L 公司有 \(n\) 个工厂,由高到低分布在一座山上,工厂 \(1\) 在山顶,工厂 \(n\) 在山脚。 由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L 公司的总裁 L 先生接到气象部门的电话,被告知三 ......
斜率 仓库 ZJOI 2007

可持久化线段树小记

可持久化线段树小记 首先你需要完成这两个模板:P3919 【模板】可持久化线段树 1(可持久化数组) P3834 【模板】可持久化线段树 2 T1 P1383 高级打字机 题意: \(n\) 个询问,\(3\) 种操作: 1.T x:在文章末尾打下一个小写字母 \(x\)。 2.U x:撤销最后的 ......
线段 小记

交点 - 射线与线段交点 - 直线方程方式

效果 //求射线与线段交点 - 直线方程方式 public static bool IsRaySegmentIntersect(Vector2 o, Vector2 dir, Vector2 a, Vector2 b, out Vector2 point) { point = Vector2.zer ......
交点 线段 射线 方程 直线

P3879 TJOI2010 阅读理解

P3879 TJOI2010 阅读理解 基本想法 开一个 map 组成的数组,然后每篇文章分配一个 map。查找的时候在每次都跑一遍。 显然 MLE 了。 改进 既然如此,录入的时候直接把单词出现对应的文章编号存起来就行,就是开一个 map<string, vector<int>>。 但是同一篇文章 ......
阅读理解 P3879 3879 2010 TJOI

【2024省选冲刺计划】数据结构相关-线段树进阶

线段树进阶 0x01 李超线段树 FZPJ4519 [2021冬令营模拟] 上古遗迹 【题目背景】“沙……沙……沙……”独行者的脚步一次次被刻进沙漠中,干冷的风携沙尘在男子的四围穿过。 “该死……这沙尘什么时候才能消停会儿……”男子止不住地咳嗽,随即停了下来,开始查看便携式投影设备上的信息,“应该就 ......
线段 数据结构 结构 数据 2024
共484篇  :2/17页 首页上一页2下一页尾页