自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 收藏
  • 关注

转载 长链剖分优化dp三例题

  首先,重链剖分我们有所认识,在dsu on tree和数据结构维护链时我们都用过他的性质。  在这里,我们要介绍一种新的剖分方式,我们求出这个点到子树中的最长链长,这个链长最终从哪个儿子更新而来,那个儿子就是所谓的“重儿子”,也可以叫长儿子。  我们的做法就是,在统计一个点的信息时,对于重儿子,我们直O(1)接继承它的答案(这里有指针技巧,只能看代码,不可言传),对于轻...

2019-03-23 20:04:00 497

转载 CF815D Karen and Cards 官方题解翻译

  看到这道题,网上没有中文版的官方题解,于是就自己翻译了一遍。  不是机器翻译,是一个字一个字纯手翻译的,如果有错误欢迎指正。    比如我们有一张卡片,三个参数分别是a1 = 4, b1 = 2, c1 = 3. 方便起见,我们令p = q = r = 5.  考虑什么样的卡片能够击败这张. 我们可以固定一个参数c,来观察对于不同的c,有什么特殊的性质:...

2019-03-08 17:35:00 311

转载 [九省联考2018] IIIDX 线段树+贪心

题目:  给出 k 和 n 个数,构造一个序列使得 d[i]>=d[i/k] ,并且字典序最大。分析:  听说,当年省选的时候,这道题挡住了大批的高手,看上去十分简单,实际上那道弯段时间内是转不过来的。  首先,一个套路是,将这个序列的关系抽象成一棵树,i的父亲是floor(i/k),我们要要求子树内部的点的权值都比父亲大。  我们观察子任务的特殊限制,d...

2019-03-01 22:52:00 205

转载 BZOJ 4016 最短路径树问题 最短路径树构造+点分治

题目:  BZOJ4016最短路径树问题分析:  大家都说这是一道强行拼出来的题,属于是两种算法的模板题。  我们用dijkstra算法算出1为源点的最短路数组,然后遍历一下建出最短路树。  之后就是裸的点分治算法,一个桶,两个变量就解决了这道题。代码: 1 #include<bits/stdc++.h> 2 #define pi...

2019-02-27 20:07:00 177

转载 Luogu P3727 曼哈顿计划E 点分治+hash

题目:  P3727曼哈顿计划E分析:  大长题面容易给人一种不可做的错觉,但是这题考的知识点都是我们熟悉的。  稍加分析我们可以得到,我们可以把每个点当成一个单独的游戏,如果k=1,就是简单的nim游戏,这样,当多个游戏放在一起的时候,我们就可以根据一条链的权值异或和来判断必胜必败。  这个给我们启发,根据SG定理(应该是这个定理?)当我们选一条链,根据这条链上所有...

2019-02-27 16:10:00 119

转载 Luogu P2664 树上游戏 dfs+树上统计

题目:  P2664 树上游戏分析:  本来是练习点分治的时候看到了这道题。无意中发现题解中有一种方法可以O(N)解决这道题,就去膜拜了一下。  这个方法是,假如对于某一种颜色,将所有这种颜色的点全部删去,原树会被割成若干棵小树,那么这个颜色对每个点的贡献就是:树的大小n - 所在小树的大小sz。所以我们要求出对于每个点来说,删去所有这个点颜色的点,这个点以下的小树...

2019-02-27 09:26:00 147

转载 CF724E Goods transportation

题意:  小明升任了 CF 国的大总管,他管辖的 n 个城市,编号为 1..n。每个城市生产了 pi 个货物,限制最多可以卖掉 si 个货物。对于每两个城市 i, j,如果 i < j,则可以最多从 i 运送 c 个货物到 j。注意不能反向运送,却可以在多个城市之间送来送去。现在小明想知道,经过运输后,最多能卖掉多少个货物。分析:  我们按照题意试试建图跑网络流?...

2019-02-25 20:31:00 293

转载 CF547D Mike and Fish 建图

题意:  有点长→CF547DMike and Fish。分析:  其实也没什么好分析的,我这也是看的题解。  (不过,那篇题解好像文字的代码不太对劲)  这里直接说做法,正确性自证:  对输入的,将横、纵坐标相等的点分别两两连边,之后只需要dfs跑一个染色,使得一条边两个端点颜色都不一样即可,这样就可以确定每一个点放红色还是蓝色,输出即可。(至于哪个是红哪...

2019-02-25 17:52:00 178

转载 BZOJ4513 SDOI2016 储能表 记忆化搜索(动态规划)

题意:  题面中文,不予翻译:SDOI2016储能表分析:  据说有大爷用一些奇怪的方法切掉了这道题%%%%%  这里用的是大众方法——动态规划。  其实这是一道类似于二进制数位dp的动态规划题,(但是实际上还不是特别典型的数位dp)这里就要我们对问题的深入理解。  如果我们按照思路进程来发展的话,首先,我们会想到把求和式和k拆开,先求出所有大于k的(i^j...

2019-02-25 16:57:00 135

转载 CF716E Digit Tree 点分治

题意:  给出一个树,每条边上写了一个数字,给出一个P,求有多少条路径按顺序读出的数字可以被P整除。保证P与10互质。分析:  统计满足限制的路径,我们首先就想到了点分治。  随后我们就需要考量,我们是否能统计过某个点的合法路径。我们看,由题目性质,我们可以求对于一个根,所有点到根的路径组成的数,以及根到所有点的路径所组成的数。然后我们就可以对前者开一个数组(其实是...

2019-02-25 10:57:00 116

转载 IOI2011 Race 点分治

题意:  给一棵树,每条边有权。求一条简单路径,权值和等于K,且边的数量最小。分析:  对于这道题,和计算长度恰好为k的路径数量差不多,只不过那个所谓的桶里不装数量,装达到这个长度的最小的边数。  (感觉把这个桶应用好,能解决点分治的不少题目)  当然呢,为了进一步节约时间,我们不必每次都把桶memset一次,只需要把用过的位置都记录下来,用完后还原即可。 ...

2019-02-23 21:25:00 172

转载 CF161D Distance in Tree 点分治

题目:  输入点数为N一棵树,求树上长度恰好为K的路径个数分析:  题目的数据范围不是很紧,点分治也可以过,树形dp也可以过。这里采用点分治做法。  我们只需要单开一个类似于桶的数组,跑点分治套路,统计即可,每次处理一棵子树,先在桶上跑统计,处理完一棵子树再更新桶。这样可以保证每一段路径都直接跨过根节点内。  记得开long long。代码: 1...

2019-02-23 19:53:00 188

转载 Luogu P3806 点分治模板1

题意:  给定一棵有n个点的树询问树上距离为k的点对是否存在。分析:  这个题的询问和点数都不多(但是显然暴力是不太好过的,即使有人暴力过了)  这题应该怎么用点分治呢。显然,一个模板题,我们直接用套路,每次找重心,对于这个重心处理,过当前点的符合要求的路径。  我们可以看到这个最大长度1e7,开数组是开得下的,所以维护一个数组(或者bitset也行)来保存之前...

2019-02-23 17:36:00 110

转载 CF528D Fuzzy Search 字符串匹配+FFT

题意:  DNA序列,在母串s中匹配模式串t,对于s中每个位置i,只要s[i-k]到s[i+k]中有c就认为匹配了c。求有多少个位置匹配了t。分析:  这个字符串匹配的方式,什么kmp,各种自动机都不灵。  所以有一个邪门功夫,fft字符串匹配。(做过洛谷《残缺的字符串》一题的应该都不陌生,带通配符的匹配字符串可以用fft卷积来做)  首先,由于字符集大小只有4...

2019-02-23 11:57:00 178

转载 CF666E Forensic Examination SAM+倍增,线段树和并

题面:  给你一个串S以及一个字符串数组T[1..m],q次询问,每次问S的子串S[p_l..p_r]在T[l..r]中的哪个串里的出现次数最多,并输出出现次数。如有多解输出最靠前的那一个。分析:  第一次见这道题时,由于对算法十分陌生,就将其压进了任务计划,这一天又提到了这道题,这才算是重见天日。  数据结构题,越来越注重多种数据结构的搭配使用。搭配使用呢,我们就...

2019-02-23 08:59:00 166

转载 CQOI2018 九连环 打表找规律 fft快速傅里叶变换

题面:  CQOI2018九连环分析:  个人认为这道题没有什么价值,纯粹是为了考算法而考算法。  对于小数据我们可以直接爆搜打表,打表出来我们可以观察规律。  f[1~10]: 1 2 5 10 21 42 85 170 341 682  我们可以发现的规律是,当i为奇数时,f[i]=f[i-1]*2+1,偶数时f[i]=f[i-1]*2。  既然这样,我们...

2019-02-21 17:39:00 269

转载 CF993E Nikita and Order Statistics 多项式卷积 快速傅里叶变换

题意:  给你一个数组a1~an,对于k=0~n,求出有多少个数组上的区间满足:区间内恰好有k个数比x小。x为一个给定的数。n<=10^5。值域没有意义。分析:  大神们都说这道题是一个套路题,真是长见识%%%。  首先我们可以将题面转化,因为x是预先给出的,所以我们可以对其进行预处理,将数列中小于x的数都设为1,其他都为0,然后求一个前缀和,另前缀和数组为s...

2019-02-20 20:52:00 200

转载 NOIP2016 天天爱跑步 线段树合并

题意:  给出一棵n个点的树,以及m次操作,每次操作从起点向终点以每秒一条边的速度移动(初始时刻为0),最后对于每个点询问有多少次操作在经过该点的时刻为某值。  (题面太毒瘤建议自己去题库食用)分析:  记得当初做这道题的时候,又差分又倍增还开桶,十分毒瘤,后来学到了线段树合并,又看到了这道题,所以就写了这篇解题报告。  每一条从S到T的路径(其实就是链),可以...

2019-02-18 16:14:00 153

转载 BZOJ 3123 SDOI2013 森林 启发式合并+主席树

题意:  给出一个森林,强制在线,支持动态加边和询问链上第k大,保证加边后图仍然是森林。分析:  有一点经验的选手都清楚,动态加边想LCT,第K大想主席树,于是有大爷LCT+主席树秒了%%%(我并不会)  观察问题,出题人在这里摆下了一个疑阵,故意引我们向link-cut tree上去思考,但是,我们发现,这个招数未免太过手下留情,如果出题人想要让我们非用LCT不可呢,不...

2019-02-17 17:20:00 118

转载 BZOJ3545 Peaks 离线处理+线段树合并

题意:  在Bytemountains有N座山峰,每座山峰有他的高度h_i。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走,现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰中第k高的山峰,如果无解输出-1。分析:  我们把题目中的限制分离出来:  1. 困难值不超过x。  2. 能达到的第k高的...

2019-02-17 16:59:00 140

转载 BZOJ2212【POI2011】ROT:Tree Rotation 线段树合并

题意:  给一棵n(1≤n≤200000个叶子的二叉树,可以交换每个点的左右子树,要求叶子遍历序的逆序对最少。分析:  求逆序对我们可以想到权值线段树,所以我们对每个点建一颗线段树(为了避免空间爆炸,采取动态开点的科技)  两个子节点可以交换,于是我们可以递归,自底向上贪心解决问题,每次线段树合并,在合并时,统计交换左右子节点后,横跨当前位置的逆序对数量,以及不交换子节点...

2019-02-17 16:40:00 109

转载 BZOJ 2502 Luogu P4843 清理雪道 最小流

题意:  滑雪场坐落在FJ省西北部的若干座山上。  从空中鸟瞰,滑雪场可以看作一个有向无环图,每条弧代表一个斜坡(即雪道),弧的方向代表斜坡下降的方向。  你的团队负责每周定时清理雪道。你们拥有一架直升飞机,每次飞行可以从总部带一个人降落到滑雪场的某个地点,然后再飞回总部。从降落的地点出发,这个人可以顺着斜坡向下滑行,并清理他所经过的雪道。  由于每次飞行的耗费是固定的,...

2019-01-11 20:19:00 114

转载 BZOJ 4464 旅行时的困惑 最小流

题面:  Waldives 有 N 个小岛。目前的交通系统中包含 N-1 条快艇专线,每条快艇  专线连接两个岛。这 N-1条快艇专线恰好形成了一棵树。   由于特殊的原因,所有N-1条快艇专线都是单向的。这导致了很多岛屿之间  不能相互到达。因此,Waldives 政府希望新建一些公交线路,使得建设完毕后,  任意两个小岛都可以互相到达。为了节约开支,政府希望建设最...

2019-01-11 19:48:00 95

转载 BZOJ 3876 支线剧情 有源汇有上下界最小费用可行流

题意:  给定一张拓扑图,每条边有边权,每次只能从第一个点出发沿着拓扑图走一条路径,求遍历所有边所需要的最小边权和分析:  这道题乍一看,可能会想到什么最小链覆盖之类的,但是仔细一想,会发现不行,一是因为每条边都会有贡献,而不是每条链,二是因为边有特定的边权,所以这道题只能用建图复杂一些的网络流来解决。  其实也挺简单的。都不用建超级源点,直接从1号点当源点就行,每条边费...

2019-01-11 19:25:00 176

转载 BZOJ 2055 80人环游世界 有上下界最小费用可行流

题意: 现在有这么一个m人的团伙,也想来一次环游世界。 他们打算兵分多路,游遍每一个国家。 因为他们主要分布在东方,所以他们只朝西方进军。设从东方到西方的每一个国家的编号依次为1...N。假若第i个人的游历路线为P1、P2......Pk(0≤k≤N),则P1<P2<......<Pk。 众所周知,中国相当美丽,这样在环游世界时就有很多人经过中国。...

2019-01-11 19:03:00 143

转载 BZOJ 2406 LuoguP4194 矩阵 有上下界可行流

分析:  这道题乍一看……卧槽这都什么玩意……  然后发现给了个A矩阵,要求一个可行的B矩阵,使得矩阵C=A-B的每一行的和的绝对值和每一列的和的绝对值的最大值最小……  好拗口啊……  什么最大值最小之类的,考的无非就是二分,我们二分一个答案,之后建图跑网络流。  因为要判断是否合法,所以我们想到了用有上下界的可行流,在这里我们采用有源汇的有上下界可行流。...

2019-01-11 17:53:00 129

转载 BZOJ4873 LuoguP3749 寿司餐厅

题面太长,请诸位自行品尝—>寿司餐厅分析:  首先题目中给了限制条件,假如选了D(i,j)(i<j),那么也就选了D(i+1,j)和D(i,j-1)两个点。  于是我们一下就明白了,哦,最大权闭合子图~  所以我们让每一个D代表一个点,然后对于每个D(i,j)代表的点,分别向D(i+1,j)和D(i,j-1)所代表的点连边(容量为inf),然后按照最大权...

2019-01-11 17:20:00 67

转载 51nod 1551 集合交易 最大权闭合子图

题意:  市场中有n个集合在卖。我们想买到满足以下要求的一些集合,所买到集合的个数要等于所有买到的集合合并后的元素的个数。  每个集合有相应的价格,要使买到的集合花费最小。  这里我们的集合有一个特点:对于任意整数k(k>0),k个集合的并集中,元素的个数不会小于k个。  现在让你去市场里买一些满足以上条件集合,可以一个都不买。分析:  根据集合的特点...

2019-01-11 16:05:00 110

转载 BZOJ 1565 植物大战僵尸 最大权闭合子图+网络流

题意:  植物大战僵尸,一个n*m的格子,每 个格子里有一个植物,每个植物有两个属性:  (1)价值;  (2)保护集合,也就是这个植物可以保护矩阵中的某些格子。  现在你是僵尸,你每次只能从(i,m) 格子进入,从右向左进攻。若一个格子是被保护的那么你是不能进入的。每进入一个格子则吃掉该格子的植物并得到其价值(价值有可能是负的),可以中途返回。问可以得到的最大价值是多少...

2019-01-11 15:41:00 157

转载 Hihocoder #1938 最大权闭合子图模板

这里的讲解很不错,适合作为入坑题:Hihocoder#1938代码:#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<queue>#defi...

2019-01-10 21:58:00 107

转载 BZOJ 4519 不同的最小割 最小割树

题面:  把每两个点当成源汇,求N*(N-1)个最小割中不同的有多少个  N<=850分析:  有这样一个结论:一张无向图不同的最小割最多有n-1个。  那么我们一定可以建出一棵树,使得这棵树中每两个点之间的最小割等于原图的两个点间的最小割。  我们倒也没必要吧这棵最小割树建出来。我们只需要做做样子,跑一下建树的过程就好,怎么办呢:  我们在原无向图中任选两...

2019-01-10 21:49:00 84

转载 BZOJ2007 NOI2010 海拔 平面图转对偶图 最小割

题面太长啦,请诸位自行品尝—>海拔分析:  这是我见过算法比较明显的最小割题目了,很明显对于某一条简单路径,海拔只会有一次变换。  而且我们要最终使变换海拔的边权值和最小。  我们发现变换海拔相当于将图割开,左上右下两个点分别属于两个不同的集合,那这就是一个很形象的最小割模型。  我们只需要平面图转转对偶图,将图中每个面变成点,连边跑最短路即可。转换的...

2019-01-10 21:35:00 144

转载 BZOJ1001 狼抓兔子 平面图转对偶图 最小割

现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形:左上角点为(1,1),右下角点为(N,M)(上图中N=3,M=4).有以下三种类型的道路1:(x,y)<==>(x+1,y)2:(x,y)<==>(x,y+1)3:(x,y)&l...

2019-01-10 21:27:00 122

转载 BZOJ 2039 人员雇佣 二元关系 最小割

题面太长了,请各位自行品尝—>人员雇佣分析:  借用题解的描述: a.选择每个人有一个代价Ai b.如果有两个人同时选择就可以获得收益Ei,j c.如果一个人选择另一个不选会产生代价Ei,j  这是一道模型题(不是模板题是模型题)我们要记住这种建模。  之前说过,最小割问题关键在于“舍弃”,所以说我们这个也是,要么舍弃Eij,要么...

2019-01-10 21:22:00 139

转载 BZOJ 3996 线性代数 最小割

题意:  给出一个N*N的矩阵B和一个1*N的矩阵C。求出一个1*N的01矩阵A.使得  D=(A*B-C)*A^T最大。其中A^T为A的转置。输出D分析:  这道题比较绕,我们需要看清题目中那个式子的本质。A*B的贡献是正的,说明这是价值。C的贡献是负的,说明这是代价。  仔细理解这句话“只有ai和aj同时为1的时候,才对答案有bij的贡献。使ai为1的代价为ci”...

2019-01-10 20:41:00 103

转载 BZOJ 3144 切糕 最小割

题意:  一个矩阵,每个格子分配一个数,不同的数字,代价不同,要求相邻格子数字差小等于d  求最小代价。分析:  我猜肯定有人看题目就想到最小割了,然后一看题面理科否决了自己的这个想法……  没错,就是最小割……  你是否还记得,在第一篇网络流题解中,我们了解了网络流最重要的是“限制”二字。  我们在这道题中,先把限制放宽,考虑在不限制编号差小于等于d的...

2019-01-10 20:01:00 119

转载 BZOJ 4823 Luogu P3756 老C的方块 染色+最小割

题面太长了请各位自行品尝—>老C的方块分析:  我们要解决掉所有使人弃疗的组合,还要保证花费最小,容易想到最小割(当然你要是想费用流的话,我们就没办法定义流量了)  我们来分析一下那些令人弃疗的组合,他们的规律:  首先是两个和特殊边直接相邻的方块(以下简称轴方块),加上两侧各任意一个边缘方块,组成了令人弃疗的组合。  所以我们有三种选择(准确地说其实只有两种,...

2019-01-10 18:00:00 94

转载 BZOJ 3158 千钧一发 最小割

分析:  偶数对满足条件2,所有奇数对满足条件1。  如果你能一眼看出这个规律,这道题就完成了一半。  我们只需要将数分为两类,a值为奇数,就从S向这个点连容量为b值的边,a值为偶数,就从这个点向T连容量为b值的边。  暴力枚举,对于奇集合和偶集合中不能共存的两个数,连容量为无穷大的边。  求出最小割,代表这个割集要被我们舍弃。  然后直接用b值总和减去...

2019-01-10 17:05:00 1048

转载 WC2007 石头剪刀布 数学+最小费用最大流

题面:  有N个人参加一场比赛,赛程规定任意两个人之间都要进行一场比赛:这样总共有N*(N-1)/2场比赛。比赛已经进行了一部分,我们想知道在极端情况下,比赛结束后最多会发生多少剪刀石头布情况。即给出已经发生的比赛结果,而你可以任意安排剩下的比赛的结果,以得到尽量多的剪刀石头布情况。  剪刀石头布情况,即无序三元组(A, B, C),满足其中的一个人在比赛中赢了另一个人,另一个人赢了...

2019-01-10 16:48:00 179

转载 BZOJ 1070 修车

题意:  同一时刻有N位车主带着他们的爱车来到了汽车维修中心。维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的。现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待的时间最小。  说明:顾客的等待时间是指从他把车送至维修中心到维修完毕所用的时间。分析:  (个人认为这题如果改成个第三代排队接水之类的,得有好多人拿贪心做)  这题就是...

2019-01-10 16:12:00 90

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除