ICode9

精准搜索请尝试: 精确搜索
  • D Difference (二分 + 单调队列)2022-05-29 12:03:19

    D Difference (二分 + 单调队列) https://ac.nowcoder.com/acm/contest/34866/D 题意 给你长度为n的序列 和一个k 一个区段值满足: f(l, r) = (max - min) * (r - l + 1); 其中max min是区间最大最小值 要求输出第k大的区间值 思路 因为数据比较大 容易超时 可以考虑二分答案 然后

  • CF1400E Clear the Multiset 题解2022-05-28 15:33:40

    考虑一个分治:每次如果要用第一种,一定是给整个区间用,直到没有办法覆盖整个区间,用的次数是 \(\min_{i=L}^R a_i\) 次,减去它之后分别递归最小值的两边。注意到如果某一次不使用第一个操作,那么以后也都不会用了,此时操作总数就是不为 \(0\) 的位置个数。复杂度最慢也是 \(O(n^2)\) 的。

  • CF1225E Rock Is Push 题解2022-05-28 15:31:14

    一般这种 dp 的转移都是相邻格子之间的,但是这道题相邻格子之间转移没办法搞掉题目的这个限制。考虑每次转向的时候转移,这样对于某一个点,他能转移的一定是一个区间(不能到最后 \(cnt\) 个,那样就把石头推出去了)。暴力做是 \(O(n^3)\) 的,区间的这个可以前缀和优化,就 \(O(n^2)\) 了。

  • Milking Time S2022-05-28 15:04:01

    题目描述 Bessie 可以在接下来 \(N\) 个小时内产奶,为了方便,我们把这 \(N\) 个小时 \(0\dots N-1\) 编号。 FJ 在这 \(N\) 个小时内有 \(M\) 段时间可以来给 Bessie 挤奶,第 \(i\) 段时间从 \(Start_i\) 开始到 \(End_i\) 结束,可以得到 \(Eff_i\) 加仑牛奶。 每次 FJ 给 Bessie 挤奶

  • 2022.5 杂题2022-05-26 20:31:55

    P5608 [Ynoi2013] 文化课 用线段树维护。对于区间修改符号的操作,记录区间的数字之和以及数字积即可。对于区间修改数字的操作,发现修改后的值无法快速求出来,考虑在每个线段树的节点 \(p\) 上,记录二元组的集合 \(S_p=\{(c_i,d_i)\mid 1\le i\le len_p\}\),表示长为 \(c_i\) 的极长乘

  • 关于区间操作查找(前缀和与差分)2022-05-23 12:01:58

    今天学了前缀和和差分,为了避免我把它忘掉,我还是浅浅的记录一下吧 首先需要知道什么是前缀和与差分:    前缀和就是数组中某元素之前(包括此元素)的所有元素的和 设b[]为前缀和数组,a[]是原数组。   对于一维数组而言,某个元素的前缀和就是从这个数组的第0个元素到这个元素的所有元

  • 可持久化线段树2022-05-21 13:00:07

    可持久化线段树 可持久化线段树 就是 可以持久化的线段树。(?????? 大部分可持久化线段树其实都是「可持久化权值线段树」,也就是「主席树」。 这个东西我好像只理解了一点点皮毛啊,暂时先发出来=_= 随便编的例题 你需要维护一个序列 \(a\),初始为空。有 \(n\) 次操作: 1 x:向序列 \(a\) 末尾

  • 57. 插入区间2022-05-20 10:00:31

    57. 插入区间 给你一个 无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入:intervals = [[1,3],[6,9]], newInterval = [2,5] 输出:[[1,5],[6,9]] 示例 2: 输入:intervals = [[1,

  • 区间dp2022-05-18 13:31:06

    练习一下区间dp,总结一下题型 括号配对问题 Brackets Sequence 链接:https://172.16.79.125/contest/view.action?cid=831#problem/A 题意:给一串括号序列。依照合法括号的定义,加入若干括号,使得序列合法。 一道典题,思路是括号配对加上路径回溯,找出输入的所有不配对单括号,在输出时将

  • 2022-05-172022-05-17 23:32:42

    给你区间的 空 集,请你设计并实现满足要求的数据结构 新增:添加一个区间到这个区间集合中。 统计:计算出现在 至少一个 区间中的整数个数。 实现 CountIntervals 类: CountIntervals() 使用区间的空集初始化对象 void add(int left, int right) 添加区间 [left, right] 到区间集合之

  • 快速选择 第k个数2022-05-15 20:05:01

    快速选择 第k个数 题目描述 给定一个序列,求第k小的数 算法思想 利用快速排序思想,算法复杂度能达到O(n)步骤如下: 1.找到排序分界点x,这里选择区间最左值 2.排序,让左边的值都小于x,右边都大于x 3.递归排序寻找数字,如果左区间数字数目大于k,直接在左边找第k小的数字,如果左区间数字数目

  • HDU-5358 First One2022-05-13 01:31:06

    First One 给出n组数,下标从1到n,求一个表达式\(\sum_{i=1}^{n}\sum_{j=i}^{n}(⌊log_2​S(i,j)⌋+1)×(i+j)\) 函数\(s(i, j)\)指的是区间\([i,j]\)的和 尺取法 这题的难点在于 如何发现他是尺取 首先我们的第一反应就是暴力,然后暴力会超时 接着观察公式有两个项,如果是通过第二个

  • 磊磊零基础打卡算法:day11 c++ 区间合并2022-05-13 00:34:44

    5.12 区间合并问题: 题目描述:给出n段区间,如果区间内,l -r存在交集,那么就可以合并,需要更新区间,如果不存在交集,那么就直接将单独的区间个数++,最后返回区间合并后的区间个数     解题思路: 将区间通过pair进行归类,并排序(可以去除包含的区间,并且可以从小到大排序也方便进行

  • 【题解】CF538H Summer Dichotomy2022-05-11 17:01:46

    【题解】CF538H Summer Dichotomy 给定若干个区间 \([l_i,r_i]\),将区间分为两组,其中有些区间不能分在一组,使得存在 \((p,q)\) 满足 \(p\) 在第一组所有区间内,\(q\) 在第二组所有区间内,且 \(p+q\in[L,R]\)。 我们需要分两组,且一些不能同组,非常像二分图/2-SAT模型。但是直接做非常

  • 【离散化】AcWing802. 区间和2022-05-10 10:03:04

    AcWing802.区间和 题解 本题要是一个很长的数轴,已经超过了数组的长度1e6,故我们需要使用离散化压缩空间 #include <iostream> #include <cstdio> #include <vector> #include <algorithm> using namespace std; typedef pair<int,int> PII; const int N = 3e5+10; //n输入的点

  • NC14247 Xorto2022-05-09 11:33:02

    NC14247 Xorto 题目 题目描述 给定一个长度为 \(n\) 的整数数组,问有多少对互不重叠的非空区间,使得两个区间内的数的异或和为 \(0\) 。 输入描述 第一行一个数 \(n\) 表示数组长度; 第二行 \(n\) 个整数表示数组; \(1 \leq n \leq 1000\), \(0\leq 数组元素 < 100000\) 。 输出描述

  • HDU 1754 I Hate It2022-05-05 13:01:03

    题目传送门 本题是单点修改,区间求极大极小值的模板题。 一、数组的含义 1、在维护和查询区间和的算法中,\(t[x]\)中储存的是\([x,x-lowbit(x)+1]\)中每个数的和。 2、在求区间最值的算法中,\(t[x]\)储存的是\([x,x-lowbit(x)+1]\)中所有数的最大值。 3、求区间最值的算法中还有一个\(a

  • AcWing 802.区间和2022-05-04 22:33:10

    AcWing 802.区间和 题目描述 假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。 现在,我们首先进行 n次操作,每次操作将某一位置 x 上的数加 c。 接下来,进行 m次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] 之间的所有数的和。 输入格式 第一行包含两个整数 n 和 m。

  • 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要

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

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

  • cf1631 D. Range and Partition2022-05-01 18:32:13

    题意: 给定长为 n 的数组。对一个值域区间 \([x,y]\),若存在一种分法把原数组恰切成 k 段(subarray),每一段中大小在 \([x,y]\) 中的数都严格大于不在 \([x,y]\) 中的数,则称这个值域区间有效。找一个最短的值域区间并输出一种分段方案 \(1\le a_i\le n\) 思路: 如果能切成 \(k+1\) 段,那

  • 洛谷P3502 窗口的星星2022-04-30 22:31:49

    题目链接   运用扫描线的方法,每一次都用一个大小固定的小矩形去框住星星,大致过程如图所示   我们要求出小矩形最多可以框住多少颗星星,也就是求出来这个区间的最大值是多少,因为小矩形的移动过程中要维护区间最大值,所以我们可以选择用线段树去维护区间最大值,我们按照星星的纵坐

  • acwing区间2022-04-24 21:32:49

    首先区间个数可以转化为前缀和的形式 然后就是差分约束了 最少包含多少个数 就是不等式为a>=b+c 的形式 只要满足了最长路的不等式 其他所有的不等式也都满足 就是跑一遍最长路 差分约束的关键在于这个约束 一定要把所有的限制条件找出来 这个题看似只有一个区间个数的限制 其实

  • AcWing 4412. 构造数组2022-04-24 13:32:10

    AcWing 4412. 构造数组(三种解法) 思路分析 经分析可得, \[若a_i = a_j,则 b_i <= b_{i + 1} <= ... <= b_j\\ 又\because b_i=b_j\,\,\,\therefore b_i = b_{i + 1} = ... = b_j \]所以只需要去统计有多少个这样的区间,然后乘2即可(因为每一个区间都有两种选择) 法一:区间合并 基础 防止

  • 2021 ICPC 昆明站 F - Find the Maximum 题解2022-04-23 02:00:16

    题面看这里 题目大意 给你一个有 \(n\) 个节点的无根树,每个节点的权值为 \(b_i\),对于树上任意一条简单路径上的点集 \(V\),定义它的权值为 \(\displaystyle\frac {\sum_{u\in V}(-x^2+b_ux)}{|V|}\),其中 \(x\) 可以取任意实数,问你在树上所有的长度大于 \(1\) 的点集 \(V\) 中,可以

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

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

ICode9版权所有