随笔分类 - 线段树/树状数组
摘要:A.string 和河北的一道省选题很像。考场上写的暴力桶排,正解其实就是优化一下这个思路。 开线段树维护字符串中每个字母出现的次数。对于每条询问,区间查询、区间赋值维护即可。 另外,本题卡常严重,正解能被卡到40到90不等。所以直接循环展开乱搞一波? 暴力40分代码: 被卡的90分代码: 丧心病狂
阅读全文
摘要:Description 方伯伯在自己的农田边散步,他突然发现田里的一排玉米非常的不美。 这排玉米一共有N株,它们的高度参差不齐。 方伯伯认为单调不下降序列很美,所以他决定先把一些玉米拔高,再把破坏美感的玉米拔除掉,使得剩下的玉米的高度构成一个单调不下降序列。 方伯伯可以选择一个区间,把这个区间的玉米
阅读全文
摘要:2752: [HAOI2012]高速公路(road) Description Y901高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这条高速公路上设立了许多收费站。 Y901高速公路是一条由N-1段路以及N个收费站组成的东西向的链,我们按照由西向东的顺序
阅读全文
摘要:Description Seter建造了一个很大的星球,他准备建造N个国家和无数双向道路。N个国家很快建造好了,用1..N编号,但是他发现道路实在太多了,他要一条条建简直是不可能的!于是他以如下方式建造道路:(a,b),(c,d)表示,对于任意两个国家x,y,如果a<=x<=b,c<=y<=d,那么
阅读全文
摘要:Description N个点,形成一个树状结构。有M次发放,每次选择两个点x,y 对于x到y的路径上(含x,y)每个点发一袋Z类型的物品。完成 所有发放后,每个点存放最多的是哪种物品。 N个点,形成一个树状结构。有M次发放,每次选择两个点x,y 对于x到y的路径上(含x,y)每个点发一袋Z类型的物
阅读全文
摘要:这道题被学长称为“科幻题” 题面 事实上,并不是做法科幻,而是“为什么能这么做?”的解释非常科幻 换句话说,复杂度分析灰常诡异以至于吉如一大佬当场吃书 线段树维护的量:区间和sum,区间最大值max1,区间次大值max2,最大值出现次数cnt。 现在假设区间[l,r]对x取min,那么有如下三种情况
阅读全文
摘要:题面 众所周知,这是一道小清新线段树 然而可以用树状数组水过去且跑得飞快 看到区间开方第一反应肯定是线段树懒标记区间修改之类的,但是这个东西似乎确凿不可维护 所以考虑暴力循环单点修改->T飞 于是我们关注一下开方本身的特殊性 我们知道,如果每次向下取整,一个数经过多次操作最终会变成1(或0) 事实上
阅读全文
摘要:权值线段树+并查集 对于每一个点先建立一个权值线段树,之后并查集维护/更改连通性。 不知道权值线段树是啥的戳我 联通就直接把祖先连起来然后合并线段树 #include<cstdio> #include<iostream> using namespace std; const int N=100005
阅读全文
摘要:线段树优化dp 数组f[i][j]表示在前i个村庄内,第j个基站建在i处的最小费用 根据交线牛逼法和王鹤松式可得方程 f[i][j]=min(f[k][j−1]+cost(k,i)) cost(k,i)表示第i~k个村庄之间没有被基站覆盖的村庄所需的赔偿费用,计算费用的复杂度为O(n) 利用二分查找
阅读全文
摘要:考试前深陷分块泥潭所以刚开始以为是分块。 ~~然而这题数据水到暴力卡常都能AC~~ 正解:万物皆可线段树 节点存储区间长度、区间最长连续空房长度、从左往右最长连续空房长度、从右往左最长连续空房长度。 维护后三个值即可。
阅读全文

浙公网安备 33010602011771号