ICode9

精准搜索请尝试: 精确搜索
  • LC315(权值线段树+离散化)2022-05-18 00:02:41

    315 给你一个整数数组 \(nums\) ,按要求返回一个新数组 \(counts\)​ 。数组\(counts\) 有该性质:\(counts[i]\) 的值是 \(nums[i]\) 右侧小于 \(nums[i]\) 的元素的数量。 输入:\(nums = [5,2,6,1]\) 输出:\([2,1,1,0]\) 解释: \(5\) 的右侧有 \(2\) 个更小的元素 \((2 和 1)\) \(2\)

  • 线段树2022-05-17 00:04:31

    线段树 区间加,区间和 #include <iostream> #include <cstring> using namespace std; typedef long long ll; const int N = 1e5 + 10; ll w[N]; struct Node { int l, r; ll add, sum; }tr[N*4]; int n, m; void pushup(int u) { tr[u].sum = tr[u <&l

  • 线段树扫描求面积2022-05-15 17:31:14

    #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int N = 10010; int n; struct Segment { int x, y1, y2; int k; bool operator< (const Segment &t)const

  • 线段树合并 & 权值线段树 & 一些题目2022-05-13 09:34:04

    https://www.luogu.com.cn/blog/styx-ferryman/xian-duan-shu-ge-bing-zong-ru-men-dao-fang-qi?tdsourcetag=s_pcqq_aiomsg %%% 权值线段树的一些操作 int getrank(int x){ return query_num(root,1,maxdata,1,x)+1; } int getpre(int x){//查询前驱 int tmp=query_num(r

  • #865. 喵~喵~喵~2022-05-09 19:00:44

    题目链接 #865. 喵喵喵~ 小 \(C\) 养了 \(n\) 只猫,编号从 \(1-n\) 。小 \(C\) 不喜欢一次只给一头猫喂猫粮,因此他选择一下喂很多只编号连续的猫,并且每次喂的猫粮都是不同种类的。现在有 \(m\) 次操作,每 次操作给定 \(o p, l, r\) 。 若 \(o p=1\) ,代表小 \(C\) 会给编号为 \([l,

  • 【线段树优化建图】【P5029 T'ill It's Over】2022-05-08 16:02:17

    【线段树优化建图】【P5029 T'ill It's Over】 P5029 T'ill It's Over Analysis 每次将一个区间一块进行连边,可以用线段树优化,减少连边数。 具体在线段树每个节点维护一个编号,这个编号用一个tot来分配,在build时,每新建一个节点,tot++。将每个节点与它的左右儿子连边。 需要注意的是,

  • zkw线段树学习笔记2022-05-08 13:02:39

    zkw线段树,我的信仰! 不过zkw线段树究竟是什么呢?一起来看一下吧。 zkw线段树是什么 zkw线段树,顾名思义,是一种线段树。 他是线段树的非递归形式,虽然没递归版线段树那么通用,但它的常数与码量吊打递归版线段树。 zkw线段树的实现 说了那么多,不会写也没用啊。 递归式线段树自上往下

  • F. MEX Queries - 线段树 + 离散化2022-05-03 12:35:21

    F. MEX Queries 题意 1 l r 将区间l r 置 1 2 l r 将区间l r 置 0 3 l r 翻转区间l r(即 是1置0 是0置1) 求每次操作后值是0的最左位置编号 思路 用线段树维护 区间和 用一个lazy 标记当前结点 置1 置0 翻转 或者 无需操作(用于减少时间复杂度) 对于翻转操作 每次更新一个结点的lazy要

  • 省选模拟赛(V)2022-05-02 22:03:52

    冲刺国赛5月2日第二场 \(t1\) 沉迷前缀和无法自拔,觉得扫描线是离散位置修改不好操作,没想到其实有零的情况只多了一点点 \(t2\) 在想回滚莫队,但是撤回操作不会很好地处理,并没有领会随机的意图…… \(t3\) 来者不善又是 \(FWT\)…… A. a 以 \(i\) 为右端点的最远左端点可以递推出

  • (线段树,add懒标记)洛谷模板题2022-05-02 18:00:17

    原题链接: 洛谷模板题 题目: 如题,已知一个数列,你需要进行下面两种操作: 1、将某区间每一个数加上 k。 2、求出某区间每一个数的和。 输入格式: 第一行包含两个整数 n,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始

  • 李超线段树2022-05-01 11:34:57

    解决多线段单点最值问题。 模板题 浅略的说一下。 每个区间存储位于当前区间中的值最大的线段。每次插入新线段,如果当前区间没有存储线段,就直接插在这里,否则分类讨论一下,如果某一个子区间的最优线段必定是当前线段,这个子区间就不用处理了。而对于另一个有不确定因素的,我们把当前的

  • (线段树) P4588 数学计算2022-04-29 02:00:25

    小豆现在有一个数 x,初始值为 1。小豆有 QQ 次操作,操作有两种类型: 1 m:将 x变为 x × m,并输出 x mod M 2 pos:将 x 变为 x 除以第 pos次操作所乘的数(保证第 pos 次操作一定为类型 1,对于每一个类型 1 的操作至多会被除一次),并输出 x mod M。   第一眼真的看不出来是个线

  • 线段树二分及区间mex2022-04-28 20:00:23

    仓鼠的鸡蛋 思路: 把线段树权值全部置为m,维护区间最大值,每次优先找满足条件的左边的区间 const int N = 500010; int cnt[N]; int a[N]; int n, m, k; int tr[N << 2]; int M = 1; void pushup(int p) { tr[p] = max(tr[p << 1] , tr[p << 1 | 1]); } void build(int n) {

  • 切完了我的第一颗线段树2022-04-24 19:02:19

    题目是洛谷的P3372,可以去看一下,传送门 算是常规模板了,先声明一下,我是数组爱好者,不喜欢用struct。代码在下面。 #include <bits/stdc++.h> using namespace std; #define MAXN 1000005 typedef long long ll; ll n, m, a[MAXN], ans[MAXN << 2], tag[MAXN << 2], x, y, k, oper; i

  • U214385 老牛拉破车2022-04-23 19:00:55

    题目大意 地面上有 \(n\) 辆车,可以视为 \(n\) 个点,编号为 \(1\sim n\)。规定向右为正方向,每辆车的质量为 \(m_i\)。 由于车是破车,车轮瓦特了,只能与地面发生滑动而非滚动,车轮与地面之间的动摩擦因数为 \(\mu\)。已知每辆车在 \(t_0=0\) 时刻在外力作用下有速度 \(v_i\)(该速度由外力

  • 一维线段并2022-04-16 10:04:02

    洛谷P1496 火烧赤壁 求数轴上n条线段的并。\(n \le 2 \times 10 ^ 4, - 2 ^ {31} \le l, r \le 2 ^ {31}\) 做法 \(:\) 基于暴力的做法:每条线段往桶里加。 再加上两个小技巧。 第一个常用技巧是差分,即对于连续的中间无询问的一些修改,可以用 \(\Theta(1)\) 单点修改,全部搞完后再 \(

  • CF930C Teodor is not a liar! 结论2022-04-16 09:04:04

    看了看没有人写详细的证明……可能觉得太简单了? 另外,我不觉得题面上的翻译是给人类阅读的…… 万老爷翻的题意: Teodor 有 \(n\) 条线段,端点都是正整数且在 \([1,m]\) 之间.他发现 没有一个整点满足在所有线段上。他把这个事实告诉 Sasha 然而她不信. Sasha 可以向 Teodor 询问若

  • AtCoder Regular Contest 069 F-Flags2022-04-16 01:00:50

    Flags 题意:N 个 flag,第 \(i\) 个在 \(x_i\) 或 \(y_i\) 坐标上,求一种方案,使得每个 flag 之间的最小距离最大。 \(2\le N \le 10^4, 1\le x_i, y_i \le 10^9\) 不妨设 \(a[i] = x_i, a[i+n] = y_i\) ,这样可以方便的取出同组元素。 排序后,为了定位到原位置,需要使用 pair 去存放每个

  • D. Progressions Covering_线段树维护差分2022-04-14 20:01:17

    线段树维护差分 D. Progressions Covering 题目大意: 数列a原来全是0,可以无限次进行一种操作,每次操作可以选择一段长度为k的区间,对该区间的数字分别对应加上1,2,3,...,k。再给出数列b,问最少操作几次可以使得a数列的每一个数字不小于b数列中的对应数字。 思路和代码: 可以操作题目给

  • 浩辰CAD-多段线2022-04-13 07:00:17

    多段线是由弧和线组成的多段连接线,是单一对象 步骤: 1.菜单位置:[绘图]→[多段线] 工 具 条:[绘图]→[多段线] 命 令 行:Pline(PL) 2.画出多条线段 3.选中线段-->鼠标放在顶点-->                        鼠标放在线段-->            

  • 2022/4/10考试过程2022-04-10 11:34:13

    三道题,看了下时间和空间限制,都是很正常的限制 因为考试刚刚开始,也没什么想法,就从第一道题开始往下慢慢推 第一道题一开始就找到了思路就是BFS,而且变换方式就三种,地图还是一维的,敲了没多长时间就拿下了 第二道题一开始没什么想法,就是一个动态规划吧,然后单调不上升和单调不下降分别

  • 我做过的题们(数据结构&图论)2022-04-09 16:03:46

    1.数据结构 树状数组&线段树 序列 线段树优化统计过程,我的方法和基站选址异曲同工。 西瓜树之二 一道比较巧妙的题目。 or SPJ 一道比较简单的构造题,线段树起构造解的作用。 链上二次求和 一道公式题,把式子推出来后没那么难。 [HEOI2012]采花 很简单的一道题,评紫实在有点暴殄

  • 雨天的尾巴(线段树合并 & 树上差分综合)2022-04-09 08:32:40

    1 #include <bits/stdc++.h> 2 #define Re register int 3 #define LL long long 4 #define ki cout << endl; 5 6 using namespace std; 7 8 //打个雨天的尾尾尾尾尾尾尾尾尾尾尾尾尾尾尾尾尾尾尾尾巴 9 //我复习了lca...............学习了差分.... 10 //

  • P1803 凌乱的yyy / 线段覆盖2022-04-06 21:31:16

    题目链接 https://www.luogu.com.cn/problem/P1803 非要整些花里胡哨的题目和题意。。。。。。。 经典入门的贪心 因为要参加尽可能多的比赛,所以将结束时间排序,下一场比赛取结束时间早且与上一场比赛时间不冲突的。 放AC代码 1 #include<bits/stdc++.h> 2 using namespace st

  • 扫描线2022-04-05 19:01:50

    简介 扫描线一般运用在图形上面,顾名思义,就是一条线在整个图上扫来扫去,它一般被用来解决图形面积,周长等问题。 扫描线的主要思想是虚拟出一条平行与 x 或 y 轴的无限长的线一路扫过去,如果发现触碰到矩形的边(被当前扫描线完全覆盖)就停下进行相关操作。 一、面积并 题型:在二维坐标

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

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

ICode9版权所有