随笔分类 - 高级数据结构——线段树
摘要:"题目链接" cpp / 13904K 532ms 最大 环状 子段和有两种情况,比如对于a1,a2,a3,a4,a5 一是两个端点都取,如a4,a5,a1,a2,那就是所有数的和减去不选的,即可以计算总和减最小连续子段和 二是两个端点不都取,如a1,a2,a3,那需要记录最大连续子段和 线段树,令
阅读全文
摘要:"题目链接" cpp //注意取模! include include using namespace std; const int N=1e5+5; int n,mod,Sum[N 1)) aTag[rt]%mod)%mod; Sum[rt 1) aTag[rt]%mod)%mod; aTag[rt
阅读全文
摘要:"题目链接"
阅读全文
摘要:"题目链接" $Description$ 有一个长为n的序列Ai,要求支持查询[l,r]的最值、历史最值,区间加/重设 $Solution$ 线段树,每个点再维护一个历史(从0到现在)最大值、历史(从上次下传标记到现在)最大的set,add标记 PushDown时肯定是先下放历史标记,之后再用当前标
阅读全文
摘要:题目链接: "BZOJ" "洛谷" $O(n^2)$DP很好写,对于当前的i从之前满足条件的j中选一个最大值,$dp[i]=d[j]+1$ cpp for(int j=1; j include include define gc() getchar() define now node[rt] def
阅读全文
摘要:"题目链接" $Description$ 有一片n亩的土地,要在这上面种草。 在每一亩土地上都种植了一种独一无二的草,其中,第$i$亩土地的草每天会长高$a[i]$厘米。 一共会进行$m$次收割,其中第$i$次收割在第$d[i]$天,并把所有高度大于等于$b[i]$的部分全部割去。求每次收割得到的草
阅读全文
摘要:"题目链接" 或者 "这" 吧。。 被数据坑了 cpp / 操作按左端点排个序 依次进行即可 不是很懂 为什么不写Build 而在Add时改mp[rt]=p 会WA(too short on line 251..) 找到Reason了。。Modify下界写错 那么为什么单点修改正确性会被下界影响。。
阅读全文
摘要:"题目链接" 首先考虑询问[1,n]怎么做 设 f[i][0/1]表示[1,i]以0/1结尾的不同子序列个数 则 $if(A[i]) f[i][1] = f[i 1][0] + f[i 1][1] + 1 , f[i][0] = f[i 1][0]$ $\ \ if(!A[i]) f[i][0] =
阅读全文
摘要:"题目链接" cpp //注意树剖一条链上或一棵子树内的编号是连续的 //建树时用的是第二次dfs得到的序列 //不要频繁转longlong include include include // define gc() getchar() define gc() (SS==TT&&(TT=(SS=I
阅读全文
摘要:"题目链接" or "Here" 题意:n个数,有两个操作:1.修改某个数为v;2.询问一段区间第k小的数 如果没有修改,则可以用线段树,每个节点P[a,b]存储大小为b a+1的数组,代表其中的数 同时,这个数组还是要排好序的 直接找答案很不方便,于是考虑对数组二分答案,求比它小的数的个数 关于构
阅读全文
摘要:选$k$段不相交的区间,使其权值和最大。
阅读全文
摘要:1.COGS.2039. 树的统计 思路: 各种方法。 代码: 1.遍历树1 时间 0.314 s 平均内存 2.96 MB 1 #include<cstdio> 2 using namespace std; 3 const int N=100005; 4 5 int n,Enum,cnt,H[N<
阅读全文
摘要:To 洛谷.1198 最大数 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1、 查询操作。 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。 限制:L不超过当前数列的长度。 2、 插入操作。 语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如
阅读全文
摘要:To 洛谷.1886 滑动窗口 To POJ.2823 Sliding Window 题目描述 现在有一堆数字共N个数字(N<=10^6),以及一个大小为k的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 例如: The array is [1 3 -1
阅读全文
摘要:To 洛谷.3373 [模板]线段树2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.将某区间每一个数乘上x 3.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含三个整数N、M、P,分别表示该数列数字的个数、操作的总个数和模数。 第二行包含N个用
阅读全文
摘要:To 洛谷.2982 慢下来Slowing down 题目描述 Every day each of Farmer John's N (1 <= N <= 100,000) cows conveniently numbered 1..N move from the barn to her privat
阅读全文
摘要:To 洛谷.2574 XOR的艺术 题目描述 AKN觉得第一题太水了,不屑于写第一题,所以他又玩起了新的游戏。在游戏中,他发现,这个游戏的伤害计算有一个规律,规律如下 1、 拥有一个伤害串为长度为n的01串。 2、 给定一个范围[l,r],伤害为伤害串的这个范围内中1的个数 3、 会被随机修改伤害串
阅读全文

浙公网安备 33010602011771号