- 博客(55)
- 收藏
- 关注
原创 差分小练习
题目概述给定一个整数n(1≤n≤105){n(1≤n≤10^5)}n(1≤n≤105)和两个长度为n{n}n的整数序列(设a[],b[]{a[],b[]}a[],b[]),保证ai,bi∈[0,3]{a_i,b_i∈[0,3]}ai,bi∈[0,3].你可以将a[]{a[]}a[]中的一段连续的数+1,特别地,若操作后ai=4,则ai=0.{a_i=4,则a_i=0.}ai=4,则ai=0.现在让你求将序列a[]{a[]}a[]变成序列b[]{b[]}b[]的最少操作次数.输入样例52
2020-10-27 18:30:30 310
原创 树上差分模板
题目描述FJ给他的牛棚的N(2≤N≤50,000)个隔间之间安装了N-1根管道,隔间编号从1到N。所有隔间都被管道连通了。FJ有K(1≤K≤100,000)条运输牛奶的路线,第i条路线从隔间si运输到隔间ti。一条运输路线会给它的两个端点处的隔间以及中间途径的所有隔间带来一个单位的运输压力,你需要计算压力最大的隔间的压力是多少。输入格式输入的第一行包含N和K。接下来的N-1行分别包含两个整数x和y(x≠y),用于描述管道在隔间x和隔间y。之间有一条管道。接下来有K行,每行包含两个整数s和t来描
2020-10-26 18:57:44 262
原创 10.24小练习
题目大意给定一个长度为n的序列,对于序列中的每个正整数数ai{a_i}ai以及n满足:(1≤ai,n≤106{1≤a_i,n≤10^6}1≤ai,n≤106).求:Σi=1nΣj=inprime(ai∗ai+1∗...∗aj−1∗aj){\Sigma^n_{i=1}\Sigma^n_{j=i}prime(a_i*a_{i+1}*...*a_{j-1}*a_j)}Σi=1nΣj=inprime(ai∗ai+1∗...∗aj−1∗aj).其中prime(i){prime(i)}prime(
2020-10-24 16:09:13 486
原创 单调队列DP模板
题目传送门:选择数字解题方向DP+单调队列.具体思路首先我们对每一个数分析,易得它们只存在两种状态:选和不选.∴很容易得到状态转移方程:sum[i]{sum[i]}sum[i]表前缀和,j=i+k-1;(f[i][0]/f[i][1]{f[i][0]/f[i][1]}f[i][0]/f[i][1]表(不)选第i个数时时最大值)f[i][0]=max(f[i−1][0],f[i−1][1]){f[i][0]=max(f[i-1][0],f[i-1][1])}f[i][0]=max(f[i−1][
2020-10-02 11:13:58 193
原创 组合数学+逆元练习
传送门:[CSP-SJX2019]多叉堆方法1.用并查集处理每棵需要连边的树并统计树的大小(如x连y)fa[x]=y,siz[y]=siz[x]+siz[y]{fa[x]=y,siz[y]=siz[x]+siz[y]}fa[x]=y,siz[y]=siz[x]+siz[y].2.推出公式:f[j]=f[j]∗f[i]∗C(jie[siz[x]],jie[siz[x]+siz[y]−1]){f[j]=f[j]*f[i]*C(jie[siz[x]],jie[siz[x]+siz[y]-1])}f[j]=
2020-09-25 21:48:22 203
原创 莫队经典例题
传送门:[AHOI2013]作业本题做法:莫队+分块(辅助).1用莫队统计区间内每个数的个数以及所在块中数的个数和种类数.2.分块按照值域分,整块直接加上处理后的区间的相关数据,碎块暴力枚举并统计在范围内的数.具体看代码:#include<bits/stdc++.h>#define N 100005#define in read()#define re registerusing namespace std;int n,m,l,r,block;int a[N],zhi,f
2020-09-19 14:29:44 300
原创 带修莫队模板
参考例题:luoguP1903[国家集训队]数颜色 / 维护队列#include<bits/stdc++.h>#define N 150005#define in read()#define re register//一堆优化using namespace std;int n,m,k,a[N],num[1000005],ans[N],zhi,from[N],l,r,now;struct zb{int l,r,poi,ti;}q[N];int Cnum=0,Qnum=0;st
2020-09-18 21:41:58 160
原创 分块学习基础
分块介绍有一种代码比树状数组、线段树简单,效率比暴力法高的算法,称为“分块”,它能以O(m∗n0.5){O(m*n^{0.5})}O(m∗n0.5)的复杂度解决“区间修改+区间查询”问题。简单地说,分块是用线段树的“分区”思想改良的暴力法;它把数列分成很多“块”,对涉及到的块做整体性的维护操作(类似于线段树的lazy-tag),而不是像普通暴力法那样处理整个数列,从而提高了效率。用一个长度为n的数组来存储n{n}n个数据,把它分为t{t}t块,每块长度为n/t{n/t}n/t .分块模板...
2020-09-12 16:23:28 272
原创 DP起手练习11luoguP1220
题目描述传送门:关路灯某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯.为了给村里节省电费,老张记录下了每盏路灯的位置和功率,他每次关灯时也都是尽快地去关,但是老张不知道怎样去关灯才能够最节省电.他每天都是在天亮时首先关掉自己所处位置的路灯,然后可以向左也可以向右去关灯.开始他以为先算一下左边路灯的总功率再算一下右边路灯的总功率,然后选择先关掉功率大的一边,再回过头来关掉另
2020-09-04 22:00:28 136
原创 DP起手练习10(树上的背包问题)
题目描述例题:[CTSC1997]选课在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习如高等数学总是在其它课程之前学习.现在有N门功课,每门课有个学分,每门课有一门或没有直接先修课(若课程a是课程b的先修课即只有学完了课程a,才能学习课程b).一个学生要从这些课程里选择M门课程学习,问他能获得的最大学分是多少?输入格式第一行有两个整数 N,M用空格隔开。(1≤N≤300,1≤M≤300){( 1 \leq N \leq 300 , 1
2020-08-07 10:14:23 251
原创 luoguP3387(强连通分量模板)
题目描述【模板】缩点(传送门)给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大.你只需要求出这个权值和.允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次.输入格式第一行两个正整数 n,m.第二行n个整数,依次代表点权.第三至m+2行,每行两个整数u,v表示一条u→v{u\rightarrow v }u→v的有向边.输出格式共一行,最大的点权之和。输入输出样例输入 #12 21 11 22 1输出 #12说明/提示【数据
2020-08-06 15:55:24 232
原创 割点模板luoguP3388
题目描述给出一个n个点,m条边的无向图,求图的割点。【模板】传送门输入格式第一行输入两个正整数 n,m.下面 mm 行每行输入两个正整数x,y表示x到y有一条边。输出格式第一行输出割点个数。第二行按照节点编号从小到大输出节点,用空格隔开。输入输出样例输入 #16 71 21 31 42 53 54 55 6输出 #115对于全部数据,1≤n≤2×104,1≤m≤105{1\leq n \le 2\times 10^4,1\leq m \le 10^5}1≤n≤2
2020-08-06 11:49:13 140
原创 DP练习9(经典树形动规)
题目背景传送门Bob 喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。题目描述他要建立一个古城堡,城堡中的路形成一棵无根树.他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到.请你编一程序,给定一树,帮Bob计算出他需要放置最少的士兵。输入格式第一行一个整数 n,表示树中结点的数目。第二行至第n+1行,每行描述每个结点信息,依次为:一个整数i,代表该结点标号,一个自然
2020-08-06 09:32:06 253
转载 裴蜀定理
裴蜀定理:对于a,b∈Z{a,b∈Z}a,b∈Z和d=gcd(a,b){d=gcd(a,b)}d=gcd(a,b),关于x{x}x和y{y}y满足丢番图方程: a
2020-08-05 15:27:22 215
原创 矩阵快速幂模板
基本介绍作用:便于快速求O(logn){O(logn)}O(logn)具有线性递推关系的数量关系或数列.前置知识:快速幂和矩阵乘法.例题推荐1.斐波拉契数列传送门#include<bits/stdc++.h>#define ll long longusing namespace std;const int mod=1000000007;ll n,k;ll read(){ ll i=0,f=1;char ch; while(!isdigit(ch)) { if
2020-08-04 16:49:17 111
原创 NOIP2018D1T3赛道修建
题目描述一道让人受益匪浅的树形DP+贪心二分题C 城将要举办一系列的赛车比赛.在比赛前,需要在城内修建m条赛道.C 城一共有n个路口,这些路口编号为 1,2,…,n1,2,…,n,有 n-1n−1 条适合于修建赛道的双向通行的道路,每条道路连接着两个路口。其中,第 ii 条道路连接的两个路口编号为ai{a_i}ai和bi{b_i}bi,该道路的长度为li{l_i}li.借助这n-1条道路,从任何一个路口出发都能到达其他所有的路口。一条赛道是一组互不相同的道路e1,e2,…,ek{e_1,e_
2020-08-04 11:17:50 417
原创 【SCOI2011】糖果(差分约束)
题目描述省选入门题大门幼儿园里有N个小朋友,lxhgww{\text{lxhgww}}lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配糖果的时候,lxhgww{\text{lxhgww}}lxhgww需要满足小朋友们的 K个要求。幼儿园的糖果总是有限的,lxhgww{\text{lxhgww}}lxhgww想知道他至少需要准备多少个糖果,才能使得每个小朋友都能够分到糖果,并且满足小朋
2020-08-03 14:43:57 489
原创 DP起手练习8(路径压缩思想)
题目描述P1052 过河【NOIP2005提高T2】在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0,1,…,L{0,1,…,L}0,1,…,L(其中L{L}L是桥的长度)。坐标为0的点表示桥的起点,坐标为L{L}L的点表示桥的终点。青蛙从桥的起点开始,不停的向终点方向跳跃。一次跳跃的距离是S到T{S到T}S到T之间的任意正整数(包括S,T{S,
2020-08-01 10:07:26 188
原创 NOIP2018D2T1旅行
题目描述*注:由于本题是个人A的第一道提高组蓝(luogu)题,所以我将把做这道题的解题思想详细记录下来一遍复习.普通版P5022变态 加强版P5049(目前加强过不了TAT)小Y是一个爱好旅行的OIer.她来到 X 国,打算将各城市都玩一遍.小Y了解到, X国的n个城市之间有m条双向道路.每条双向道路连接两个城市.不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路.并且,从任意一个城市出发,通过这些道路都可以到达任意一个其他城市.小 Y 只能通过这些 道路从一个城市前往另一
2020-07-31 16:53:10 283
原创 NOIP2018对称二叉树(树形结构的基础处理)
题目描述传送门一棵有点权的有根树如果满足以下条件,则被轩轩称为对称二叉树:1.二叉树;2.将这棵树所有节点的左右子树交换,新树和原树对应位置的结构相同且点权相等。下图中节点内的数字为权值,节点外的id{id}id表示节点编号。现在给出一棵二叉树,希望你找出它的一棵子树,该子树为对称二叉树,且节点数最多。请输出这棵子树的节点数。注意:只有树根的树也是对称二叉树。本题中约定,以节点T为子树根的一棵“子树”指的是:节点T和它的全部后代节点构成的二叉树。输入格式第一行一个正整数n,表示给定的树的
2020-07-31 14:10:35 503
原创 乘法逆元学习笔记(初学但易理解)
基本概念所谓乘法逆元,就是两个整数a和x相乘再用一个(非1正整数)数p对它们取模,若取模后所得的值等于1,那么x和a在模p条件下互为乘法逆元.用同余方程表达即:a∗x≡1(mod p){a*x≡1(mod~p)}a∗x≡1(mod p),用一般方程表达为:a∗x−k∗p=1,(k∈z){a*x-k*p=1,(k∈z)}a∗x−k∗p=1,(k∈z).(a存在逆元时有一充要条件:gcd(a,p)=1即a,p互质){(a存在逆元时有一充要条件:gcd(a,p)=1即a,p互质)}(a
2020-07-29 21:27:22 478 1
原创 DP起手练习7(有用的树规简单基础)
对树规简单基本认识所谓树规,简单来说就是在树这个结构上做普通DP.它所考虑的东西只比普通DP多两点:建图和遍历.我个人比较喜欢用邻接表存图,然后链式前向星和邻接矩阵等凭个人爱好选择;而遍历往往只有两种:根到叶子节点和叶子到根节点,一般后者使用比较广泛,而实现用递归即可.接下来思考这道题(由于只是DP一个基础题,所以还是只给传送门吧):【树规模板】没有上司的舞会思路这道题很容易想到每个人只有两种状态:去和不去.所以我们用f[i][1]{f[i][1]}f[i][1]和f[i][0]{f[i][
2020-07-28 16:44:25 153
原创 DP起手练习6(好题!)
题目背景小 \mathrm{E}E 不幸在一场战斗中失去了他的金宝剑。题目描述制造一把金宝剑需要 nn 种原料,编号为 11 到 nn,编号为 ii 的原料的坚固值为 a_iai 。炼金是很讲究放入原料的顺序的,因此小 \mathrm{E}E 必须按照 11 到 nn 的顺序依次将这些原料放入炼金锅。但是,炼金锅的容量非常有限,它最多只能容纳 ww 个原料。所幸的是,每放入一个原料之前,小 \mathrm{E}E 可以从中取出一些原料,数量不能超过 ss 个。我们定义第 ii 种原料的
2020-07-28 13:45:44 158
原创 DP起手练习5
题目描述[USACO08JAN]Running S奶牛们打算通过锻炼来培养自己的运动细胞,作为其中一员,贝茜选择的运动方式是每天进行n分钟的晨跑.在每分钟的开始,贝茜会选择下一分钟是用来跑步还是休息.贝茜的体力限制了她跑步的距离。更具体地,如果贝茜选择在第i分钟内跑步,她可以在这一分钟内跑 di{d_i}di米,并且她的疲劳度会增加1.不过,无论何时贝茜的疲劳度都不能超过m。如果贝茜选择休息,那么她的疲劳度就会每分钟减少1,但她须休息到疲劳度恢复到0为止.在疲劳度为0时休息的话,疲劳度不会再变动.
2020-07-28 11:01:20 127
原创 DP起手练习4(NOI导刊)
题目描述数列(线性DP好题)虽然msh长大了,但她还是很喜欢找点游戏自娱自乐。有一天,她在纸上写了一串数字:1,l,2,5,4。接着她擦掉了一个l,结果发现剩下l,2,4都在自己所在的位置上,即1在第1位,2在第2位,4在第4位。她希望擦掉某些数后,剩下的数列中在自己位置上的数尽量多。她发现这个游戏很好玩,于是开始乐此不疲地玩起来……不过她不能确定最多能有多少个数在自己的位置上,所以找到你,请你帮忙计算一下!输入格式第一行为一个数n,表示数列的长度。接下来一行为n个用空格隔开的正整数,第i行表示数
2020-07-28 09:34:53 359
原创 DP起手练习3
题目描述:CF543A码代码有n个程序员,每个程序员都可以写任意行代码,总共要编写m行代码,这m行代码可以由多个程序员来编写。但是第i个程序员在一行代码中会出现ai{a_i}ai个 bug。现在希望知道有多少种方案能使得这m行代码中的 bug 的数量不超过b个。两个方案不同当且仅当某个程序员编写的代码量(行数)不同。输入格式:输入第一行包含三个整数 n,m,b,mod。接下来一行n个整数ai{a_i}ai。输出格式:输出一行一个整数,表示m行代码 bug 数量小于 b的方案数对 mod取
2020-07-25 15:35:31 245
原创 P4017最大食物链计数[拓扑法]
题目背景一道经典的DP拓扑题 你知道食物链吗?Delia 生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条。于是她来就来求助你,然而你也不会啊!写一个程序来帮帮她吧。题目描述给你一个食物网,你要求出这个食物网中最大食物链的数量。(这里的“最大食物链”,指的是生物学意义上的食物链,即最左端是不会捕食其他生物的生产者,最右端是不会被其他生物捕食的消费者.)Delia 非常急,所以你只有1秒的时间。由于这个结果可能过大,你只需要输出总数模上80112002的结果.输入
2020-07-25 13:15:00 223
原创 DP起手练习2
题目描述luoguP1435回文词是一种对称的字符串。任意给定一个字符串,通过插入若干字符,都可以变成回文词。此题的任务是,求出将给定字符串变成回文词所需要插入的最少字符数。比如 “Ab3bd”插入2个字符后可以变成回文词“dAb3bAd”或“Adb3bdA”,但是插入少于2个的字符无法变成回文词。注:此问题区分大小写.输入格式一个字符串(0<strlen<=1000)输出格式有且只有一个整数,即最少插入字符数输入输出样例输入 #1Ab3bd输出 #12思路这道题正面
2020-07-25 10:22:32 121
原创 luoguP1965转圈游戏[快速幂]
题目描述n 个小伙伴(编号从0到 n-1)围坐一圈玩游戏。按照顺时针方向给 n个位置编号,从0到n-1。最初,第 0号小伙伴在第 0号位置,第1号小伙伴在第1号位置,……,依此类推。游戏规则如下:每一轮第0号位置上的小伙伴顺时针走到第m 号位置,第 11号位置小伙伴走到第 m+1号位置,……,依此类推,第n − m号位置上的小伙伴走到第 0 号位置,第n- m+1号位置上的小伙伴走到第1 号位置,……,第n-1号位置上的小伙伴顺时针走到第m-1号位置。现在,一共进行了10k{10^k}10k轮,请问x号
2020-07-24 11:13:12 121
原创 DP起手练习1
题目描述传送门(摆花)小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆。通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号。为了在门口展出更多种花,规定第i种花不能超过ai{a_i}ai 盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。试编程计算,一共有多少种不同的摆花方案。输入格式第一行包含两个正整数n和m,中间用一个空格隔开。第二行有n个整数,每两个整数之间用一个空格隔开,依次表示a1,a2,…,an{a_1,a_2,…,a_n}
2020-07-24 09:02:58 130
原创 luoguP1494小Z的袜子
题目描述小Z的袜子(因自己的gcd没有return而RE了一天的题 )作为一个生活散漫的人,小 Z 每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小 Z 再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小 Z 把这 N 只袜子从 1 到 N 编号,然后从编号 L 到 R (L 尽管小 Z 并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。你的任务便是告诉小 Z,他有多大的概率抽到两只颜色相
2020-07-23 16:45:10 111
原创 [USACO16OPEN]248 G(新手区间DP)
题目描述给定一个1*n的地图,在里面玩2048,每次可以合并相邻两个(数值范围1-40),问最大能合出多少。注意合并后的数值并非加倍而是+1,例如2与2合并后的数值为3。输入格式一个正整数n(2<=n<=248),以及n个正整数ai{a_i}ai(1<=ai{a_i}ai<=40).输出格式求合并后的最大数字.思路用f[i][j]{f[i][j]}f[i][j]来表示区间i~j可合出的最大数字,只需再用一个DP方程转移即可:(很显然是时间复杂度O(n3{n^3}n3
2020-07-23 11:14:02 170
原创 异或序列luoguP4462
题目描述已知一个长度为n的整数数列a1,a2,...,an{a_1,a_2,...,a_n}a1,a2,...,an.给定查询参数l,r,问在al,al+1,...,ar{a_l,a_{l+1},...,a_r}al,al+1,...,ar . 区间内,有多少子序列满足异或和等于k。也就是说,对于所有的x,y (I ≤ x ≤ y ≤ r),能够满足ax⨁ax+1⨁...⨁ay=k{a_x \bigoplus a_{x+1} \bigoplus ... \bigoplus a_y =
2020-07-21 17:01:09 190
原创 莫队算法模板luoguP2709
题目描述小B 有一个长为 n 的整数序列 a,值域为 [1,k].他一共有 m 个询问,每个询问给定一个区间[l,r],求:∑i=1kci2{\sum\limits_{i=1}^k c_i^2}i=1∑kci2其中 ci{c_i}ci 表示数字 i 在[l,r]中的出现次数。小B请你帮助他回答询问。输入格式第一行三个整数 n,m,k。第二行 n 个整数,表示 小B 的序列。接下来的 m 行,每行两个整数 l,r。输出格式输出 m 行,每行一个整数,对应一个询问的答案。莫队思想
2020-07-21 14:02:04 172
原创 加工生产调度(非常nice的贪心题!)
题目描述某工厂收到了 n 个产品的订单,这 n 个产品分别在 A,B 两个车间加工,并且必须先在 A 车间加工后才可以到 B 车间加工。某个产品 i 在 A,B 两车间加工的时间分别为 Ai,Bi{A_i},{B_i}Ai,Bi.怎样安排这 n 个产品的加工顺序,才能使总的加工时间最短。这里所说的加工时间是指:从开始加工第一个产品到最后所有的产品都已在 A,B 两车间加工完毕的时间。输入格式第一行仅—个整数 n,表示产品的数量。接下来一行 n 个整数是表示这 n 个产品在 A 车间加工各自
2020-07-21 09:37:39 929
原创 线性筛素数O(N)
代码如下:void Init(){ int n=100000005,k=0; memset(isprime,1,sizeof(isprime));//全部默认为素数 isprime[0]=isprime[1]=0;//先除0,1 for(int i=2;i<=n;i++) { if(isprime[i])prime[++k]=i;//未被标记则加入素数 for(int j=1;j<=k,i*prime[j]<=n;j++)//保证所有范围内的数都能用上 {
2020-07-20 19:43:40 151
原创 能量项链(区间DP模板)
题目描述在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记.因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量.如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为m×r×n(Mars单位),新产生的珠子的头标记为m,尾标
2020-07-20 14:42:44 108
原创 CSPS2019D1T2毒瘤括号树
题目背景本题中合法括号串的定义如下:() 是合法括号串。如果 A 是合法括号串,则 (A) 是合法括号串。如果 A,B 是合法括号串,则 AB 是合法括号串。本题中子串与不同的子串的定义如下:字符串 S 的子串是 S 中连续的任意个字符组成的字符串.S 的子串可用起始位置 l 与终止位置 r 来表示,记为 S (l,r)1≤l≤r≤∣S∣,∣S∣表示 S 的长度).S 的两个子串视作不同当且仅当它们在 S 中的位置不同,即 l不同或 r 不同.题目描述一个大小为 n 的树包含 n 个结点和
2020-07-17 10:54:40 258
原创 luoguP3384轻重链剖分(树剖)[模板]
题目描述如题,已知一棵包含 N 个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作:操作 1: 格式: 1 x y z 表示将树从 x 到 y 结点最短路径上所有节点的值都加上 z。操作 2: 格式: 2 x y 表示求树从 x 到 y 结点最短路径上所有节点的值之和。操作 3: 格式: 3 x z 表示将以 x 为根节点的子树内所有节点值都加上 z。操作 4: 格式:4 x 表示求以 x 为根节点的子树内所有节点值之和输入格式第一行包含 44 个正整数 N,M,R,P,分别表
2020-06-26 21:36:34 204
原创 luoguP3834主席树(可持久化线段树)模板
题目背景这是个非常经典的主席树入门题——静态区间第 kk 小。数据已经过加强,请使用主席树。同时请注意常数优化。题目描述如题,给定 n 个整数构成的序列 a,将对于指定的闭区间 [l, r] 查询其区间内的第 k 小值。输入格式第一行包含两个整数,分别表示序列的长度 nn 和查询的个数 mm。第二行包含 n 个整数,第 ii 个整数表示序列的第 i 个元素 a[i]。接下来 m 行每行包含三个整数 l,r,k表示查询区间[l, r]内的第 k 小值。输出格式对于每次询问,输出一行一个整数
2020-06-24 20:41:29 145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人