ICode9

精准搜索请尝试: 精确搜索
  • java生成指定范围的随机数2022-07-18 11:32:36

    前言 生成指定范围内的随机数 这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数字的测试用例。问题往往类似于: 如何随机生成 1~100 之间的随机数,取值包含边界值 1 和 100。 用例解释 以 Java 语言为例,我们

  • AT3981 [ARC093D] Dark Horse2022-07-17 18:35:25

    题面传送门 我们发现强制第一个人在一号节点不影响答案,因此我们钦定第一个人在一号点然后答案乘\(n\)即可。 考虑本质要求什么。也就是说\([2,2],[3,4],[5,8]\dots [2^{n-1}+1,2^n]\)区间内的最小值都不在\(A\)中。 不在不好考虑,容斥变成至少有\(S\)集合内的点在这些区间的最小值

  • 区间覆盖2022-07-16 17:35:30

    C++ 区间覆盖 /* 问题描述: 给定 N 个闭区间 [ai,bi] 以及一个线段区间 [s,t],请你选择尽量少的区间,将指定线段区间完全覆盖。 输出最少区间数,如果无法完全覆盖则输出 −1。 输入格式: 第一行包含两个整数 s 和 t,表示给定线段区间的两个端点。 第二行包含整数 N,表示给定区间

  • 小清新简单dp题(二)2022-07-16 16:00:23

    9. P1453 城市环路 很容易发现这其实就是一道基环树上的 dp 题。 如果是在普通树上该怎么做呢?考虑设 \(dp_{i,0/1}\) 表示以 \(i\) 为根的子树内,\(i\) 节点不选/选时贡献的最大值,有转移方程: \[dp_{i,0}=\sum_{j\in son_i} \max(dp_{j,0},dp_{j,1}) \]\[dp_{i,1}=\sum_{j\in son_i}

  • go语言整数二分模板2022-07-16 15:31:54

     首先我们明确,二分都是由于某个可以检查的条件,将一个区间分为两半  所以我们首先有一个check函数,对中间mid进行判断 func check(mid int) bool { }  第二步,对区间进行划分  两种区间的划分,对应两种写法 // 区间[l, r]被划分成[l, mid]和[mid + 1, r]时使用: func b

  • 力扣练习——25 无重叠区间2022-07-16 11:31:52

    1.问题描述 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。   注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 示例 1: 输入: [ [1,2], [2,3], [3,4], [1,3] ] 输出: 1 解释: 移除 [1,3] 后,剩下的区间

  • 区间DP做题小记2022-07-15 20:02:38

    所以说,字符串压缩问题基本上都是区间DP喽 哦 T1 Luogu P4302 [SCOI2003]字符串折叠 设\(f[i][j]\)为压缩\([i,j]\)后最短的长度 首先,对于没有压缩的情况:\(f[i,j]=min(f[i,j],f[i,k]+f[k+1,j])\) 然后我们考虑有压缩的问题 1.需要一个check函数,让我们检查这样的区间是否可以满足压

  • 线段树 Segment Tree2022-07-14 23:02:28

    线段树(Segment Tree)是一种二叉树形态的数据结构。 用于存储区间或线段,并且允许快速查询结构内包含某一点的所有区间信息。 过程类似于归并排序,通过递归实现。 线段树的基本操作: 建立线段树:复杂度O(n),递归建立,从叶节点→根 区间查询:复杂度O(log n),递归查找,从根→叶节点 区间修改:复

  • leetcode 435. Non-overlapping Intervals 无重叠区间(中等)2022-07-14 19:04:56

    一、题目大意 标签: 贪心 https://leetcode.cn/problems/non-overlapping-intervals 给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 示例 1: 输入: intervals = [[1,2],[2,3],[3,4],[1,3]] 输出: 1

  • 如何理解分治一定能分到所有区间2022-07-13 23:36:26

    考虑当前层,是不是只分到左端点在 \([l,mid]\),右端点在 \([mid+1,r]\) 的区间? 那么是不是还差左右端点都在 \([l,mid]\) 的区间,左右端点都在 \([mid+1,r]\) 的区间?于是推锅分治下去即可,因为 \(solve(l,r)\) 的定义就是遍历了左右端点在 \([l,r]\) 的区间。

  • #loj6032. 「雅礼集训 2017 Day2」水箱2022-07-13 16:02:38

    #loj6032. 「雅礼集训 2017 Day2」水箱 题目描述 给出一个长度为 \(n\) 宽度为 \(1\) ,高度无限的水箱,有 \(n - 1\) 个挡板将其分为 \(n\) 个 \(1 - 1\) 的小格,然后向每个小格中注水,水如果超过挡板就会溢出到挡板的另一边,这里的水是满足物理定律的(在无挡板阻拦的情况下会向低处流),现

  • 【考试总结】2022-07-132022-07-13 16:00:53

    计蒜客题 从左到右枚举区间右端点并求出来有几个左端点满足条件 单调栈维护当前遍历到的 \(i\) 为右端点的区间的最大/最小值,每个栈中元素作为最值的区间在它加入栈之后不会延长,那么计算出来这段区间里面有哪些满足条件。 入栈的时候求出,弹栈的时候删掉即可 Code Display const i

  • P2470 [SCOI2007]压缩2022-07-13 09:31:54

    [SCOI2007]压缩 Luogu P2470 题目描述 给一个由小写字母组成的字符串,我们可以用一种简单的方法来压缩其中的重复信息。压缩后的字符串除了小写字母外还可以(但不必)包含大写字母R与M,其中M标记重复串的开始,R重复从上一个M(如果当前位置左边没有M,则从串的开始算起)开始的解压结果(称为缓

  • 20220711模拟赛2022-07-13 09:04:13

    F: 题意:给定n个不大于c的正整数a1~an和m组询问,每次问 [l,r] 中有多少个数出现正偶数次。 注:强制在线 一道分块题,思路类似区间分块9(众数)那道题,连续块的答案可以用暴力来维护,每次询问时散点枚举,其对答案的贡献显然。 点击查看代码 #include<bits/stdc++.h> #define get(i) (((i-1)/

  • 贪心算法: 区间选点2022-07-12 20:32:06

    c++ 区间选点 /* 区间选点 题目描述: 题目搬运: 给定 N 个闭区间 [ai, bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量。 位于区间端点上的点也算作区间内。 输入格式: 第一行包含整数 N,表示区间数。 接下来 N 行,每行包含

  • 雅礼集训系列套题 做题记录2022-07-12 16:35:11

    2017 D1 市场 题意 维护一个长度为 \(n (1\leq n \leq 10^5)\) 的数列。 支持区间加,区间整除,区间求min 区间求和。 思路 将除法操作转化为减法,将「序列的离散程度」作为 势能中的一部分。 而不仅仅只是值域作为势能,从而具有更加优秀的均摊性质。 规避了加法对势能的影响,当然,对于还

  • Codeforces Round #804 (Div. 2)2022-07-11 22:03:35

    比赛链接 其实这场的题都没有特别难,但D因为奇怪的问题卡住了,于是... D 又是后面的DP都想出来了,但是不会判断一个区间是否能被完全消去... 容易发现消去的部分由一些长度为偶数的区间组成,且每个区间都是回文不对称的。然后原本一直在想:枚举每一个中心,求出可以消去的最大长度,然后

  • 差分2022-07-11 09:31:35

    1.应用于区间的修改和询问问题。 2.把给定的数据元素集A分成很多区间,对这些区间做很多次操作,每次操作是对某个区间内的所有元素做相同的加减操作。 3.差分数组对“区间修改”很高效,但是对“单点查询”并不高效。对于题型是“区间修改+单点查询”,此时需要用树状数组和线段树来求解

  • 分块/莫队总结(未完结)2022-07-11 07:31:25

    分块/莫队总结 分块是必须要写一下总结的了。(主要是再不写我就烂的没边了。。) 世界上怎么会有分块这种毒瘤的东西啊。要是我赛场上敢写分块说明可以把我送去医院了。(确信) 据说今年 SNOI 2022 赛场上用分块写 T2 的都挂的非常惨。。。(所以还不如写树状数组呢还有 45pts 学分块干

  • 最小区间问题2022-07-10 16:32:42

    最小区间问题 作者:Grey 原文地址:最小区间问题 题目描述 LeetCode 632. 最小区间 思路 准备一个数据结构 public static class Node { public int value;// 值是多少 public int position;// 在链表的哪个位置上 public int bucket; // 在哪个链表上

  • CF1701 Educational Codeforces Round 131总结2022-07-09 18:01:27

    比赛地址 比赛情况 排名:221 / 23733 AC:4 / 6 题目总结 A 看一下有几个1,0个就0,4个就2,否则1 B \(d=2\) 显然最优。 于是从 1 到 \(n\) 判断,如果此数还未输出就输出它和它的2倍和它的2倍的2倍,直到大于 \(n\),标记为出现过,然后遍历下一个数。 C 双指针 首先把每个人擅长的工作都交给它

  • [cf309E]Sheep2022-07-08 16:01:32

    二分枚举答案,并考虑如下贪心: 从左到右依次选择区间,并维护未选区间的"右边界" 记当前位置为$l$,右边界$\le r$的未选区间数为$cnt_{l,r}$(其中$r\in [l,n]$) 取最小的$r$满足$cnt_{l,r}=|[l,r]|$,将这$cnt_{l,r}$个区间中右端点最小的填在$l$上 关于上述贪心的正确性,证明如下: 将所有

  • 扶苏的问题2022-07-06 15:37:57

    扶苏的问题 题目描述 给定一个长度为 \(n\) 的序列 \(a\),要求支持如下三个操作: 给定区间 \([l, r]\),将区间内每个数都修改为 \(x\)。 给定区间 \([l, r]\),将区间内每个数都加上 \(x\)。 给定区间 \([l, r]\),求区间内的最大值。 输入格式 第一行是两个整数,依次表示序列的长度 \(n

  • [HNOI2010]合唱队2022-07-06 11:43:02

    原题链接 题解 首先本题只从左边和右边取,所以剩下的必然是区间,妥妥的区间DP,直接设状态: \(f[i][j][0]\) 表示第 \(i\) 人从左边插入区间 \(i+1,j\) \(f[i][j][1]\) 表示第 \(j\) 人从右边插入区间 \(i,j-1\) 因为第 \(i\) 个人从左边插入,根据题意,他就会小于前面的人,而前面的人要么

  • 乱写——CF杂题2022-07-05 19:33:48

    \(\text{CodeForces}\) 杂题乱写 动态规划 CF149D Coloring Brackets 这是一个区间 dp,我们需要在状态中存入当前区间左右的颜色,来判断关于“匹配”以及“相邻”的限制,预处理用栈找到每一对匹配括号。 之后考虑这样一个问题,一个括号序列中两个相邻且独立的序列,他们整体的方案数其实

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

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

ICode9版权所有