ICode9

精准搜索请尝试: 精确搜索
  • [LeetCode]1621. Number of Sets of K Non-Overlapping Line Segments 动态规划js版2022-02-27 06:31:35

    题目描述 LeetCode原题链接:1621. Number of Sets of K Non-Overlapping Line Segments Given n points on a 1-D plane, where the ith point (from 0 to n-1) is at x = i, find the number of ways we can draw exactly k non-overlapping line segments such that

  • CF1642A 题解2022-02-24 16:34:06

    题目传送门 题目大意 在平面直角坐标系上,有一个三角形,给出三角形的三个顶点的坐标 \((x_i,y_i)\),其中 \(x_i,y_i\) 均为整数且 \(0\le x_i,y_i\le 10^9\)。 如果存在一条线段,这条线段的端点在 \(x\) 轴上,另一个端点在三角形上,并且这条线段不穿过三角形内部,那么就称三角形上的这个

  • 使用线段树解决数组任意区间元素修改问题2022-02-24 13:32:52

    作者:Grey 原文地址:使用线段树解决数组任意区间元素修改问题 要解决的问题 数组任意区间内的元素修改,增加,求和,时间复杂度都要达到O(logN)水平, 方法说明如下: L...R上都加V void add(L, R, V, arr) L...R上的值都更新成V void update(L, R, V, arr) L...R上求和并返回求和信息 i

  • 可持久化线段树2022-02-24 09:34:58

    可持久化就是支持维护不同时间下的版本的数据结构啦。 那么可持久化线段树能干什么很显然了。 可持久化线段树又叫主席树,因为来历大家都知道就不多说了。 那么就直接讲核心操作了,就是克隆节点。 克隆节点 就是在修改的时候(或者维护多棵有公共节点的线段树时)使用。把有变化的节点新

  • 线段树解决单点修改和区间查询问题(动态求连续区间和)2022-02-24 01:31:21

    1264. 动态求连续区间和    题目    提交记录    讨论    题解    视频讲解   给定 n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [a,b] 的连续和。 输入格式 第一行包含两个整数 n 和 m,分别表示数的个数和操作次数。 第二行包含 n

  • 前后缀优化建图2022-02-23 12:35:57

    前后缀优化建图是指一个点连向的区间一定是一段前缀或一段后缀的形式。 这种情况前后缀可以做到比线段树优化建图 \(O(n\log n)\) 边数更优的 \(O(n)\) 的边数. 实现起来也比线段树更简单: 这样就是 \(u\) 对之前所有点都连边了。 但满足这种条件的题目可能不多,一道例题是P6378 [P

  • 算法训练营 刷题2022-02-20 12:33:13

    STL应用 vector HDU 3527 STL应用 map HDU 3527 STL应用 queue poj 1915 STL应用 set hdu 1412 STL应用 map poj 2418 STL应用 map HDU 1263 STL应用 stack 计蒜客 T1655 线段树 HDU - 1166 敌兵布阵 线段树 POJ - 3468 A Simple Problem with Integers 线段树 poj 2777 Count Col

  • 数据结构选做2022-02-20 11:02:33

    \(\texttt{CF319E Ping-Pong}\) 交叉的线段之间的边是双向边,可以用并查集维护。 由于线段长度严格单调递增,只会出现后面的线段包含前面的线段的情况,因此直接用线段树去连边,并查集的正确性可以保证。 对于包含的线段,由于 \(a\in b, b\in c \longrightarrow a\in c\) ,这种单向边最

  • 【模板】线段树(&离散化)2022-02-20 08:34:30

    #include<bits/stdc++.h> using namespace std; const int the_size = 262144; int in[the_size], n, m, s, e, v, ans; char judge; struct TREE{ //结构体-树 int left, right; int maxn, sumn,

  • 学习笔记——线段树系列2022-02-19 19:31:07

    线段树 把一个数组存成树形结构,可以处理所有能进行区间合并的操作,单次修改和查询为 \(O(\log n)\)。 1.普通线段树 学会使用懒标记,放个板子。 支持单点和区间的加法与乘法,单点查询和区间查询最值与求和。 点击查看代码 int n,q; ll a[maxn]; struct SegmentTree{ #define len (r

  • 线段树之合并与分裂2022-02-19 09:35:02

    请你维护一些可重集,初始只有一个编号为 \(1\) 的可重集 \(a\),要支持以下操作: 0 p x y:将可重集 \(p\) 中大于等于 \(x\) 且小于等于 \(y\) 的所有元素移动到一个新的可重集中。(其编号从 \(2\) 开始,是上次新建的可重集的编号 \(+1\)。) 1 p t:将可重集 \(t\) 中的元素全部移动到可

  • 线段树2022-02-17 08:00:49

    单点修改+区间求和 #include<bits/stdc++.h> #define ll unsigned long long using namespace std; ll n,m,a[2000010],ans[2000010],tag[2000010]; ll ls(ll x) { return x<<1; } ll rs(ll x) { return x<<1|1; } void lazy(ll k,ll l,ll r,ll plus) { tag[k]+=p

  • 可持久化线段树学习笔记2022-02-16 13:32:16

    可持久化线段树支持访问一个数组的历史版本。复杂度 \(O(\log n)\)。 基础 维护三个信息,左子树,右子树,权值。 int top; struct zxs{ int l,r,v; } tree[(1e6)<<2]; 建树 int build(int v,int l,int r){ v=++top; if(l==r){ tree[v].v=a[l]; return top; } int mid=(l+r)

  • AUTOCAD——三种箭头的画法2022-02-16 10:35:23

    我们来说一个CAD箭头的三种画法,后面两种都是需要用到源泉插件的哦。 操作工具 操作系统:Windows10 AutoCAD版本:2020 步骤 1.第一种画法,使用多线段命令(快捷键:PL)。执行命令后输入w,设置起点与端点的宽度都为15,长度为100,如下图动图所示: 多线段命令   2.接着输入W,把起点宽度改为45、

  • 翻译练习 Day162022-02-09 23:01:59

    题目:Letter A | JXNUOJ 翻译: Letter A 1000ms 65536K 描述: Little Petya learns how to write. The teacher gave pupils the task to write the letter A on the sheet of paper. It is required to check whether Petya really had written the letter A. 小Petya学习如何写字。

  • 【动态开点线段树&树链剖分】【[SDOI2014]旅行】2022-02-09 20:01:04

    【动态开点线段树&树链剖分】【[SDOI2014]旅行】 题目传送门 写篇题解巩固一下动态开点线段树和树链剖分,并附上模板 一、动态开点线段树 在某些题目中我们不需要把线段树的所有节点都建立出来,而是当用到某个节点时才建立该节点,从而节省空间。 用到动态开点线段树的题,一般有几个特

  • GSS系列中线段树部分的学习笔记2022-02-09 08:32:01

    GSS系列中的线段树题目笔记 GSS系列也是线段树的一部分好题了。 其中GSS6和GSS8貌似是平衡树,所以将来单独另写笔记 GSS系列题 GSS1 GSS1 题意: 给一段序列(不一定是正整数),支持查询最大子段和。 题解: 线段树维护:区间和、区间最大子段和、区间最大前缀和、区间最大后缀和。 区间最大

  • 线段树-经典&有趣2022-02-07 15:35:26

    定义 一种区间树,即将除叶子节点的区间拆分成两个区间,序列以一棵二叉树的形式呈现。 如图便是一棵线段树,我们将通过图来更深刻的认识线段树。 性质 1.可以观察到,这棵线段树的深度是 \(\log n\)。 2.每个除叶子节点以外节点的左孩子是该节点乘上 \(2\),而右孩子是该节点乘上 \(2\)

  • CF803G Periodic RMQ Problem 口胡2022-02-07 12:34:24

    Statement CF803G Periodic RMQ Problem - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 给你一个序列 \(a\) 让你支持 11 ll rr xx 区间赋值 22 ll rr 询问区间最小值 我们觉得这个问题太水了,所以我们不会给你序列aa 而是给你序列一个长度为nn 的序列bb ,把bb 复制粘贴kk 次就可

  • 题解 P8099 [USACO22JAN] Minimizing Haybales P2022-02-04 23:34:40

    提供一个无脑做法。是目前最劣解…… 考虑两个草堆 \(x,y\) 若满足 \(x<y\) 且 \(|h_x-h_y|>K\),那么显然无论怎么交换 \(x\) 永远在 \(y\) 前面。因此我们对于每一个这样的 \(x,y\),从 \(x\) 向 \(y\) 连边。 答案应该是建出的图的最小字典序(权值是 \(h\))的拓扑序。这样很明显是 \(

  • 数组数组 线段树2022-02-04 19:01:48

    树状数组 o logn 在某个位置加上某个数(如果是修改,那么就加两个数的差 ),求前缀和(求前缀和本身不支持修改),从而求区间和 奇数位置 存放的原来数组a上的位置的数 偶数位置 存放前一个奇数位置+前一个偶数位置的数 x的二进制表示有k个0 c[x]=【x-2^k ,x】 c[x]=(x-lowbit(x),x) 三个

  • 线段树模板2022-02-04 14:35:59

  • 线段树2022-02-03 23:04:53

    前言(废话,水长度) 以下内容可以直接跳过到定义! 如果你看过我前几期博客,细心的朋友可以发现我并不喜欢加注释,但数据结构这个专题下的博客我要学习lhy26老师严谨认真但不高产的写博客风格,要细细的分开慢慢解说,当然,汇总版我是不会加注释的,毕竟不加注释就看不出抄题解 我是不会告诉你们l

  • 可持久化数据结构学习笔记2022-02-03 01:03:42

    史上最短学习笔记,没有之一。 可持久化线段树 相信大家都会。核心思想是每次修改最多改变 \(\mathcal O(\log n)\) 个元素,因此每次修改只需新建 \(\mathcal O(\log n)\) 个节点,时空复杂度均 \(n\log n\)。 标记永久化 如果主席树需要支持区间操作,那么递归到整区间打标记时,就不能像

  • poj2777 线段树状态压缩2022-02-02 23:03:39

    1 #include<iostream> 2 #include<cstdio> 3 #include<vector> 4 #include<cstring> 5 #define ls (x<<1) 6 #define rs (x<<1|1) 7 using namespace std; 8 const int N=1e5+5; 9 int sum[N<<2],tag[N<<2]; 10 int

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有