自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蒟蒻 lxw的博客

学习使我快乐(大雾)

  • 博客(185)
  • 收藏
  • 关注

原创 No Link, Cut Tree!【长链剖分】【dsu on tree】

题目链接:https://vjudge.net/problem/Gym-101484F原题目给的是一棵完全二叉树,所以暴力就可以过。这里假设它是一颗一般树,那么可以用dsu on tree+线段树用O(N*logN*logN)的时间复杂度解决,或者用长链剖分+线段树+前缀最大值+后缀最大值做到O(N*logN)的时间复杂度。dsu on tree 做法如下:线段树维护当前每层的剩余...

2020-06-20 17:41:12 274

原创 hiho SAM模板三【带权本质不同串】【广义SAM】

题目链接:https://hihocoder.com/problemset/problem/1457注意:不能在遍历和统计入度的时候直接删除‘10’的边,这样会导致入度统计出错。也不能用 maxlen[u] - maxlen[fa[u]] 来计算tot,因为‘10’ 边会影响结果。#include <bits/stdc++.h>#define ll long long...

2019-11-22 15:39:20 208

原创 hiho SAM模板题二 【长度为1-n 的字串的最多出现次数】

题目链接:https://hihocoder.com/problemset/problem/1449通过topo计算每个节点的R集大小,然后给每个节点的maxlen打标记。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++) #define ll long long...

2019-11-20 17:11:44 194

原创 hiho SAM模版题一【本质不同字串个数】

题目链接:https://hihocoder.com/problemset/problem/1445把每个状态的lenmax-lenmin+1 累加起来就可以了。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define ll long longcon...

2019-11-20 17:06:43 304

原创 Forest Game 【期望】【点分治】【FFT】

题目链接:https://vjudge.net/problem/Gym-101234D题目大意:给一颗树,共N个点,每次随机选择一个点,得分加上该点所在树的大小,然后删除这个点,断开与其相连的所有边,问删完所有点所获得的 期望得分乘N! 是多少。emmm被这个乘N! 给坑了,以为这是个假的期望题目,因为全排列共N!种, 期望乘N! 其实就是全排列的和,觉得这是出题人留的解题思路.......

2019-11-07 18:49:40 188

原创 A Simple Task【区间排序】【线段树】

题目链接:http://codeforces.com/contest/558/problem/E题意: 给定一个字符串, m次操作, 每次操作一个区间, 0表示让这个区间降序, 1 表示升序, 问最后字符串的样子。字符集只有26个,所以线段树维护区间内每个字母的数量,对于排序操作就直接暴力进行区间覆盖。#include<bits/stdc++.h>#define ...

2019-11-01 15:35:11 800

原创 [HAOI2015]树上染色 【树形背包】

题目链接:https://vjudge.net/problem/HYSBZ-4033考虑每个边对答案的贡献dp[i][j]表示以i为根的子树中共选取j个黑色的点,对答案的贡献。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define per(i, a, ...

2019-10-25 17:27:56 124

原创 Frank Sinatra【树上莫队】【分块】【区间mex】

题目链接:https://vjudge.net/problem/Gym-100962F题目大意:给你一棵树,边有边权,每次询问一条链上边权集合的mex。用莫队加分块维护区间mex。有一个很重要的点是,边权最大到1e9,但是显然大于 N 的权值对答案一定没有贡献,这样的话数组就可以开的下了。#include <bits/stdc++.h>#define rep(...

2019-10-25 16:46:31 409

原创 树上莫队模板

题目链接:https://vjudge.net/problem/SPOJ-COT2教学博客:https://www.cnblogs.com/zwfymqz/p/9223425.html题目大意:查询链上点权不同数的个数。ps:如果是边权的话,那么u,v对应的区间是[st[u]+1,st[v]],无需lca。#include <bits/stdc++.h>#defin...

2019-10-25 14:25:02 177

原创 RMQ求LCA

题目链接:https://www.luogu.org/problem/P3379学习链接:https://blog.csdn.net/Diogenes_/article/details/81412316预处理时间复杂度O(NlogN)查询时间复杂度O(1)#include <bits/stdc++.h>#define rep(i, a, b) for(int ...

2019-10-23 16:49:05 250

原创 斜率优化dp

推荐学习博客:https://www.cnblogs.com/orzzz/p/7885971.html题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3507#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#defin...

2019-10-18 21:20:29 104

原创 Marbles 【状压dp】

题目链接:https://vjudge.net/problem/Gym-102348C一个特别好的状压dp题目,但是突然有点懒,不想写题解了,直接发代码吧。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define per(i, a, b) for(int ...

2019-10-18 15:59:06 153

原创 环形石子合并【n^2做法】

题目链接:https://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/1977.html四边形不等式优化dp学习博客:https://blog.csdn.net/noiau/article/details/72514812环形排列 N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相...

2019-10-12 15:21:26 369

原创 Kruskal重构树

题目链接:https://www.luogu.org/problem/P4197题目大意:有N座山峰,每座山峰有他的高度hi。有些山峰之间有双向道路相连,共M条路径,每条路径有一个困难值,这个值越大表示越难走.现在有Q组询问,每组询问询问从点v开始只经过困难值小于等于x的路径所能到达的山峰中第k高的山峰,如果无解输出−1。#include <bits/stdc++.h&...

2019-09-20 17:00:59 106

原创 [JSOI2016]最佳团体【01分数规划】【树形背包】

题目链接:https://www.luogu.org/problem/P4322两个板子合一块#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define per(i, a, b) for(int i = (a); i >= (b); i--)#defi...

2019-09-20 09:47:19 110

原创 长链剖分模板

题目链接:https://codeforces.com/contest/1009/problem/F题目大意:给你一棵树,定义d(x,i)表示x子树内和x距离为i的节点数,对每个x求使d(x,i)最大的i,如有多个输出最小的。长链剖分是一种类似dsu on tree的小trick,可以把维护子树中只与深度有关的信息做到线性的时间复杂度。#include <bits/stdc++...

2019-09-18 11:05:56 157

原创 树上启发式合并与dsu on tree

题目链接:https://codeforc.es/contest/600/problem/E题目大意:给一颗以1为根的树,共n个点。点有颜色,颜色从1-n编号。问每颗子树中出现次数最多的颜色 的编号之和。启发式合并做法:#include<bits/stdc++.h>#include<ext/pb_ds/assoc_container.hpp>#includ...

2019-09-13 10:58:28 367

原创 Robots【2019南京网络赛】【DAG图上概率】

题目链接:https://nanti.jisuanke.com/t/41301设day[i]表示以i为起点到终点的期望天数。设ans[i]表示以i为起点到终点的期望得分。显然day特别好求,然后考虑如何借用day去得到ans,这也没什么难的,按求day的那种感觉就能写出方程来,然后验证一下样例就可以了。#include <bits/stdc++.h>#define ...

2019-09-06 21:19:00 161

原创 Continuous Intervals【单调栈】【合法区间计数】

题目链接:https://nanti.jisuanke.com/t/41296从左到右枚举右端点,然后求合法的左端点的个数。用max表示区间最大值,min表示区间最小值,cnt表示区间不同数的个数。合法需要满足max-min-cnt == -1用单调栈可以找到每次添加右端点后,最大值和最小值需要更新的区间。(都是以R为右端点)用unordered_map可以找到区间内不同数的个...

2019-09-06 17:15:45 285

原创 Indie Album【AC自动机】

题目链接:https://codeforces.com/contest/1207/problem/G首先对于模式串建立AC自动机,然后对文本串建立字典树。考虑在字典树上一边dfs,一边维护AC自动机上每个点的成功匹配次数。而AC自动机每到一个新的点,fail树上从根到该点这条链上的每个点都会匹配一次。所以是一个树上的链修改,加上单点查询。因为每次修改都是从根开始的,所以可以用dfs序加...

2019-09-06 15:49:55 259

原创 CCPC2019网络赛 array【后缀数组】【主席树】【线段树上二分】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6703#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define per(i, a, b) for(int i = (a); i >= (b); i++)#de...

2019-08-27 16:50:38 297

原创 Candies 【后缀数组】【主席树】

题目链接:https://vjudge.net/problem/Gym-102302K前置技能:后缀数组处理本质不同的字串。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define per(i, a, b) for(int i = (a); i >= ...

2019-08-27 16:42:42 152

原创 A+B>=K(?????)

A 的取值范围[l1,r1], B 的取值范围[l2,r2]。问有多少种取值方案满足A+B>=K。时间复杂度O(1)用对拍稍微验证了一下代码的正确性ll nb(ll l1,ll r1,ll l2,ll r2,ll k) { ll ans=0; ll lll=k-r1; ll rrr=k-l1; if(lll>r2)return an...

2019-08-22 08:34:16 413

原创 Make Rounddog Happy【序列分治+DP】

DP维护从某点 往后/往前 遇到的第一对非法点对。然后分治计数,合并的时候根据最大值是 由左区间贡献还是右区间贡献 来进行分类,注意去重。可以枚举左/右区间端点,这样即能固定最大值也能固定剩余区间的长度。复杂度O(NlogN)#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (...

2019-08-22 08:13:30 293

原创 Rikka with Travels【换根树dp】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6686不写题解了,写不动还有其他简单的做法#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define per(i, a, b) for(int i = (a);...

2019-08-20 08:59:15 265 2

原创 Coprimes(从 i 位置往后第一个与其互质的数的位置)

bitset维护每个质因子出现的位置从后往前跑,每次找到一个位置使该数的所有质因子都没有出现过。把该数的所有质因子的bitset或起来,然后找从当前位置往后的第一个0位置。取反后用bitset的_Find_first函数可以解决。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i &...

2019-08-19 10:47:52 210

原创 Floyd求最小环模板

int val[maxn + 1][maxn + 1]; // 原图的邻接矩阵inline int floyd(const int &n) { static int dis[maxn + 1][maxn + 1]; // 最短路矩阵 for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) ...

2019-08-19 08:48:50 166

原创 最长道路tree【点分治】

题目链接:https://ruanx.pw/bzojch/p/2870.html?tdsourcetag=s_pcqq_aiomsg用map记录子树中每个最小路径长度的最大边长,定义map从大到小排序,然后用双指针的方法进行路径合并。#include <bits/stdc++.h>#include <ext/pb_ds/assoc_container.hpp>...

2019-08-17 08:44:14 171

原创 聪聪可可【点分治】

模板题题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2152求长度为3的倍数的路径条数#include <bits/stdc++.h>#include <ext/pb_ds/assoc_container.hpp>#include <ext/pb_ds/hash_policy.hpp&gt...

2019-08-16 21:01:17 108

原创 [Jsoi2009]有趣的游戏【概率DP】【AC自动机+高斯消元】

题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1444首先构建AC自动机。然后问题就变成了经典问题:给一个有环图,0号点为起点,每条边有一定的概率去走,有若干个终点,到达终点后必须停止,问经过某一点的概率是多少。然后就可以用高斯消元解决了。(我怀疑这题数据水)#include<bits/stdc++...

2019-08-16 15:04:41 190

原创 圆桌问题【网络流24题】

题目链接:https://www.luogu.org/problem/P3254二分图最大流然后看一下残留网络就行了#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)#define pii pair<int,int>#define mp make...

2019-08-16 10:09:57 98

原创 数字梯形问题【网络流24题】【费用流】

题目链接:https://www.luogu.org/problem/P4013对于第一问把一个点拆成入点和出点,从入点到出点连一条容量1,费用0的边,表示每个点最多只能经过一次。从S连向第一层的各点的入点,容量1,费用为负的点权。从最后一层点的出点连向T,容量1,费用0。从各个点的出点连向下次能到达点的入点,容量1,费用为负的目标点点权。拆点保证点只经过一次,各边的容量1...

2019-08-16 09:31:02 106

原创 Acesrc and Travel【换根树dp】

考虑固定根(起点)情况下的最优解,可以用dp容易求出。考虑换根操作,假设当前根为u,需要换成v。(v是以1为根情况下u的子节点)那么需要保证v->u后,u不能再返回v,所以需要记录最优值和次优值。当发现u的最优值不经过v,用最优值对v进行转移,否则用次优值进行转移。基本做法就是这样,但是在实际写代码的过程中,发现了2种需要特判的情况。第一种:在写dfs2时发现u没有次优解...

2019-08-15 10:05:37 186

原创 菜菜种菜 Comet OJ - Contest #8

题目链接:https://cometoj.com/contest/58/problem/D?problem_id=2758对于第i个点,记录他左右距离最近的直接到达点的编号,分别为le[i]和ri[i]。当且仅当询问区间[L,R] ,满足 L<=i&&R >=i &&L>le[i]&& R< ri[i] 时第i号节点会...

2019-08-10 09:47:28 164

原创 You Are Given Some Strings...【AC自动机】

题目链接:http://codeforces.com/contest/1202/problem/E枚举文本串的每个位置,计算以该位置为结尾可以匹配多少个模式串,再计算以下一位置为起点能匹配多少模式串,相乘累加作为答案。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)...

2019-08-10 08:25:15 556

原创 负载平衡问题【网络流24题】【流量平衡】

题目链接:https://www.luogu.org/problem/P4016首先,每个点最终都会变成平均值。计原值为s[i],平均值为aver。那么计算一下每个点与平均值的差,如果差为正,说明这个点有一些多余的货物可以给相邻的点,我们称这样的点为“小源点”。但是这样的点很多,在网络流模型里只有一个源点,所以我们就建立一个超级源点S。S连向所有这些“小源点”,容量为|s[i]-a...

2019-08-06 21:19:21 470

原创 运输问题【网络流24题】

题目链接:https://www.luogu.org/problem/P4015最小/最大费用模板题// luogu-judger-enable-o2#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)using namespace std;const int N...

2019-08-06 17:01:33 149

原创 骑士共存问题【网络流24题】

题目链接:https://www.luogu.org/problem/P3355首先,攻击关系不会出现奇环,所以可以对棋盘进行二分染色。然后就和方格取数那个题一样了。S连每个黑,边权为1.每个黑连其能攻击的点,边权为inf。每个白连T,边权为1。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = ...

2019-08-06 16:39:04 116

原创 分配问题【网络流24题】

题目链接:https://www.luogu.org/problem/P4014沙雕题,建图很简单。跑一遍最小费用,再把边权取反重跑一遍最小费用。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= (b); i++)using namespace std;const int N...

2019-08-06 15:16:49 197

原创 方格取数问题【网络流24题】

题目链接:https://www.luogu.org/problem/P2774最小割建图。先对格子分为黑白格,类似国际象棋。然后S连黑,边权为黑点点权。每个黑连周围4个白,边权为inf。每个白连T,边权为白点点权。#include <bits/stdc++.h>#define rep(i, a, b) for(int i = (a); i <= ...

2019-08-06 14:44:28 162

空空如也

空空如也

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

TA关注的人

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