随笔分类 - 洛谷官方题单
摘要:原题链接:https://www.luogu.com.cn/problem/P3168 题意解读:一个任务管理系统,能够查询在某个时间点运行的任务中优先级最小的 k个任务的优先级之和。 解题思路: 由于总时间n不超过100000,考虑针对所有时刻建立可持久化线段树,根节点为root[i]的线段树维护
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2617 题意解读:动态求区间第k小问题。 解题思路:树套树的典型应用,具体阐述参考:https://www.cnblogs.com/jcwy/p/18640914 100分代码: #include <bits/stdc+
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/CF960F 题意解读:按输入顺序从边中选出能首尾相连且权值递增的最多边数。 解题思路: 依然从最长上升子序列的模型出发, 对于输入的第i条边,用a[i],b[i],w[i]分别表示起点、终点、权值, 设f[i]表示第i条边
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3293 题意解读:计算每位顾客i认为的[li,ri]之间菜品的最大美味值,美味值是bi^(aj+xi),bi、xi是与顾客有关的属性,aj是菜品的属性。 解题思路:要计算每位顾客的最大美味值bi^(aj+xi),是一个异
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3157 题意解读:长度为n的序列,序列是1~n的排列,一共m个删除操作,每一个删除之前输出逆序对。 解题思路: 要计算静态的逆序对,可以通过树状数组、权值线段树等方式,时间复杂度都是O(nlogn) 要计算动态的逆序对,
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P4093 题意解读:一个序列,m个变化,求任意一个变化后不受影响的最长上升子序列长度。 解题思路: 设原序列为a[N],原序列经过变化后能得到的最大值序列为maxa[N],最小值序列为mina[N] 设f[i]表示以第i个
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3810 题意解读:题意很明显,有n组三元组,对于f(i),表示j!=i的情况下,所有的aj<=ai,bj<=bi,cj<=ci,这样的j的数量。求f(i)=0,1,2...n-1的i的个数。 解题思路: 先将三元组按a排
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3380 题意解读:对于序列,实现5个操作:1.查询区间[l,r]范围数值k的排名 2.查询区间[l,r]范围第k小值 3.单点修改某一个位置的值 4.查询区间[l,r]范围数值k的前驱 5.查询区间[l,r]范围数值k的
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P4587 题意解读:对于序列a[n],查询m个区间[l,r]数值对应集合的神秘数。集合 S 的神秘数定义为最小的不能被 S 的子集的和表示的正整数。 解题思路: 对于区间[l,r],从小到大将数值选入集合,来观察神秘数的变
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3834 题意解读:静态区间第k小问题,可持久化线段树(也称为主席树)模版题。 解题思路: 一、朴素想法:如何求完整区间[1,n]第k小 1、权值线段树 设n个数构成序列a,b数组代表a中元素出现的次数,即b数组的构建方式
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/CF19D 题意解读:坐标系支持几种操作:1.添加一个点(x,y),保证不会重复 2.删除一个点(x,y) 3.查询刚好比一个点(x,y)的x,y都大的点,优先看刚好比x大的位置,如果该位置有多个点,取y最小的一个,找到则输
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P2572 题意解读:对于01序列,支持几种操作:0.将区间值全变成0 1.将区间值全变成1 2.将区间值全部取反 3.查询1的个数 4.查找连续最多1的个数 解题思路:区间修改,区间查询,又是线段树的典型应用。 要查询的值
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P4145 题意解读:对于序列a[n],支持两种操作:1.对区间[l,r]内每个数开方 2.查询区间[l,r]每个数的和 解题思路:区间修改,区间查询,可以用线段树解决。 咋一看,需要借助于懒标记来修改节点,但仔细分析,开方
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P5522 题意解读:有若干0/1/?组成的字符串,支持两种操作:1.将指定位置字符串修改成新字符串;2.查询区间内字符串能否统一成一个字符串,求有多少种可能;将2的所有结果异或起来,再和0异或,输出最终答案。注意:?表示可
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1558 题意解读:给定序列a[n],初始都为1,支持两种操作:1.将区间[a,b]所有值都改为c;2.查询区间[a,b]范围有多少个不同的数;输出所有操作2的结果。 解题思路:又是线段树的典型应用,要支持区间修改,需要用
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1637 题意解读:统计序列a[1]~a[n]中三元上升子序列的个数,三元上升子序列是指对于1<=i<j<k<=n有a[i]<a[j]<a[k],(a[i],a[j],a[k])成为一组上升子序列。 解题思路: 1、先思考
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P6492 题意解读:一个序列,初始L,可以指定一个位置修改,L修改成R,R修改成L,可以令L=0,R=1,然后每次修改后输出序列最长不连续0、1(0/1交替出现)的长度。 解题思路:序列支持单点修改(0->1,1->0),
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P1471 题意解读:给定序列a[n],支持三种操作:1.将区间每个数加上一个数 2.查询区间的平均数 3、查询区间的方差 解题思路:要支持区间修改和查询,首选线段树,下面看线段树节点需要维护的信息 平均数 = 区间和 /
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P4513 题意解读:给定序列a[n],支持两种操作:1.查询区间[l,r]内的最大子段和 2.将a[x]修改成s,输出其中每一个查询操作的结果。 解题思路:区间问题依然想到线段树,问题主要在于线段树的节点要维护哪些信息:
阅读全文
摘要:原题链接:https://www.luogu.com.cn/problem/P3373 题意解读:对于序列a[n],支持三种操作:1.对区间每个数乘上一个数 2.对区间每个数加上一个数 3.求区间和 解题思路:由于支持乘、加两种区间修改操作,是线段树的另一种典型应用:多个懒标记 显然,这里需要两个懒
阅读全文
浙公网安备 33010602011771号