
线段树
Qingo呀
老菜鸡。
展开
-
牛客练习赛73 D-离别(线段树+离线)
题目链接:https://ac.nowcoder.com/acm/contest/9033/D思路:预处理出区间右边界为i时,左边界的可取范围[ l[i],r[i] ]。具体就是用队列来存储值为a[i]的下标,先把i放入队列中。如果队列里的下标大于k个,那么,l[i] 为q.front()+1与 l[i-1](区间要满足第i-1的值的区间)的较大值,并且队首出列。如果,队列里的下标等于k个,r[i] 为q.front()与 r[i-1]的较大值。对询问区间的右端点从小到达排序,线段树维护当前询问原创 2020-11-23 20:12:58 · 158 阅读 · 0 评论 -
杭电2019多校第六场 HDU-6638 Snowy Smile (线段树+最大子矩阵和)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6638题意:T组样例。n个二维平面上的点,每个点有一个权值,问最大子矩阵和。思路:题解:首先将纵坐标离散化到 O(n) 的范围内,方便后续的处理。将所有点按照横坐标排序,枚举矩形的上边界,然后往后依次加入每个点,这样就确定了矩形的上下边界。设 v[y] 表示矩形内部纵坐标为 y 的点的权值和,则...原创 2019-08-08 20:17:55 · 290 阅读 · 0 评论 -
2019南昌网络赛 I. Max answer(单调栈+线段树)
链接:https://nanti.jisuanke.com/t/38228题意和思路都和https://blog.youkuaiyun.com/birdmanqin/article/details/97553976差不多。#include <bits/stdc++.h>#define ll long longusing namespace std;const int N = 5e5...原创 2019-07-27 21:27:45 · 132 阅读 · 0 评论 -
2019牛客暑期多校训练营(第四场)C sequence(单调栈+线段树)
链接:https://ac.nowcoder.com/acm/contest/884/C 题意:注意是多组输入。。。。第一行给出n,接下来给出数组a的n个元素和数组b的n个元素。在所有连续区间中,假设为[l,r],求数组a在该区间的最小值*数组b在该区间的和的最大值。思路:用单调栈找出每个a[i]作用的范围,用线段树维护区间内前缀和的最大值和最小值。当a[i]<0时,求出[i,r[i...原创 2019-07-27 21:23:05 · 193 阅读 · 0 评论 -
石油大 2019年第二阶段我要变强个人训练赛第十八场 Problem N 扶桑号战列舰(线段树+区间更新+区间查询)
链接:http://icpc.upc.edu.cn/problem.php?cid=1803&pid=13题意:给出一个n,接下来一行给出n个数。才开始所有数为0,每次操作可以选一个区间[l,r]使得区间内的数全部+1。问最少的操作次数得到这个序列,并且输出每步的区间。思路:线段树维护区间内的最小数以及下标。枚举左端点,右端点肯定越大越优。每次先找出a[i]剩下多少,再迭代的从[i...原创 2019-07-31 19:17:14 · 138 阅读 · 0 评论 -
杭电2019多校第二场 HDU-6602 Longest Subarray(线段树+lazy标记)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6602题意:多组样例。先给出n,k,c。接下来一行n个数(1<=a[i]<=c)。问最大的区间长度,对于 (1<=i<=c),这c个数,要么其个数为0,要么其个数>=k。思路:官方题解:如果右端点固定,对于每种元素,可行的左端点下标是两段连续的区间。对于每种元素,将...原创 2019-07-25 22:10:41 · 235 阅读 · 0 评论 -
杭电2019多校第三场 HDU-6609 Find the answer(权值线段树+离散化)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6609题意:Q组样例。每组样例第一行给出n、m,接下来一行n个数(a[i])。对于每一个,输出需要删除最少的个数,使得。思路:对于每个i,删除最少的个数=i-1-留下的最多的个数。我们建一个权值线段树,因为1<=w[i]<=1e9而1<=n<=2e5,所以需要离散化。我们能留...原创 2019-07-30 09:53:16 · 1213 阅读 · 5 评论 -
杭电2019多校第二场 HDU-6601 Keen On Everything But Triangle(线段树+三角形与斐波那契数列 或主席树(模板))
链接:http://acm.hdu.edu.cn/showproblem.php?pid=6601、题意:多组样例。给你一个n和q,接下来一行n个数,加下来q行,每行给出l、r,求区间[l,r]中的数,能组成三角形周长的最大值。不能组成则输出-1。思路:首先,斐波那契数列中的任意三个数都不能组成三角形。如果若干数中,不能选出三个数组成三角形,那么他们肯定全是斐波那契数。因为斐波那契数列增长...原创 2019-07-24 21:26:44 · 264 阅读 · 0 评论 -
HDU - 5475 An easy problem (暴力或线段树)
One day, a useless calculator was being built by Kuros. Let's assume that number X is showed on the screen of calculator. At first, X = 1. This calculator only supports two types of operation.1. mult...原创 2019-07-05 10:43:09 · 161 阅读 · 0 评论 -
石油大 Contest1777 - 2019年第二阶段我要变强个人训练赛第九场 C 给你一个666(线段树或RMQ)
时间限制:1 Sec内存限制:256 MB提交:346解决:62[提交] [状态] [命题人:admin]题目描述Tongtong非常喜欢用“say 666”的方式来打招呼,因此热爱数学的他找到了一个说666的新方式。Tongtong构造了一个数学上很6的运算。定义一个6位二进制数上的运算 @ : a@b=(c,d)。其中 c = a的高3位*b的低3位 ; d = a...原创 2019-07-01 16:23:25 · 167 阅读 · 0 评论