自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

夕弦

May you return with a young heart after years of fighting.

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

原创 搬家通知

由于各种原因(包括阅读体验和博客环境等各种因素),本人决定将 blog 搬至 这里。

2019-07-29 12:59:16 293

原创 【进阶】树链剖分

之前写过一个基本的树链剖分,但是我今天要讲的进阶版树链剖分要能支持以下操作:换根:将一个指定的节点设置为树的新根。修改路径权值:给定两个节点,将这两个节点间路径上的所有节点权值(含这两个节点)增加一个给定的值。修改子树权值:给定一个节点,将以该节点为根的子树内的所有节点权值增加一个给定的值。询问路径:询问某条路径上节点的权值和。询问子树:询问某个子树内节点的权值和。其实还是板子题...

2019-07-13 19:07:57 251

原创 【进阶】树状数组 BIT

之前我讲过最基本的树状数组 ,这里讲一讲它的”进阶形态“.具有可加性的内容让树状数组来维护会显得很方便(比如说和),而不满足可加性的内容让树状数组来维护会有点麻烦(虽然已经有 dalao 给出了树状数组求最大值和 select 的程序,但我想这个时候还是老老实实写线段树或者平衡树吧)。之前讲的是单点修改加区间查询,现在就从树状数组区间修改单点查询开始吧。先丢一波单点修改区间查询的代码。cl...

2019-07-13 18:20:13 228

原创 【专题】组合数学之球盒问题

球盒问题是组合数学中的经典问题,问题统一一下就是这样:有 nnn 个(不)同的球,放进 mmm 个(不)同的盒子里,(不)允许有空盒,求方案数。根据上面的描述可以看出,这个问题总共有 888 种情况,我们一个一个来看。为了方便起见,我们只考虑有解的情况 。球相同,盒不同,无空盒Cn−1m−1C_{n - 1}^{m - 1}Cn−1m−1​可以用插板法,nnn 个球中总共有 n−1n...

2018-11-01 21:48:40 2283 2

原创 浅析LCA

1. 1. 1. \ 定义LCA(Least Common Ancestors),即最近公共祖先,指对于有根树 TTT 的两个结点 uuu 、vvv ,最近公共祖先 LCA(T,u,v)LCA(T,u,v)LCA(T, u, v) 表示一个结点 xxx, 满足 xxx 是 uuu、vvv 的祖先且 xxx 的深度尽可能大。 下面给出一个自己画的图,用来解释LCA及其算...

2018-08-06 16:30:29 14232 7

原创 【题解】BZOJ 2006 [NOI2010] 超级钢琴

传送门DescriptionDescriptionDescription有 nnn 个音符,编号为 111 至 nnn 。第 iii 个音符的美妙度为 AiAiA_i 。我们要找到 kkk 段超级和弦组成的乐曲,每段连续的音符的个数 xxx 满足 L≤x≤RL≤x≤RL\leq x\leq R ,求乐曲美妙度的最大值。SolutionSolutionSolution贪心 +...

2018-06-26 20:35:44 966

原创 【Tools】使用批处理文件对拍程序

我们经常在比赛的时候发生这么一种情况: 第X道题,写好了暴力并能够保证暴力的正确性,但突然想到了一个更为高效的算法,但无法确定程序是否正确,这个时候,就要使用对拍解决问题。 有些人是用c++程序进行对拍的,而我喜欢用bat文件(因为写起来短啊)。我们假设这道题的题目名为problem,数据生成的可执行程序名为random.exe 两个程序的可执行程序名名称为problem1.exe和...

2018-06-04 19:15:56 1434

原创 【模板】线段树区间合并

区间合并是一类问题的统称,种类很多,但在这篇博客中只需实现以下操作即可: 有一个01串,你有三种操作: 1.将[a, b]中的所有数字改成0 2.将[a, b]中的所有数字改成1 3.询问[a, b]中最长连续的1的长度是多少 前两种操作其实可以算作一个操作,重点在于如何高效地解决第三种操作。 虽说平衡树也可以解决这类问题,但是这里我们使用线段树来解决。这是一个经典的老套路...

2018-05-28 21:17:20 1456 2

原创 【模板】图论算法模板(持更)

图论图论是个大板块,建模在图论中占有很重要的地位,至于算法就是理解之后代码多敲敲,具体的架构还是差不多的。 图论大概有3个级别,第一级别就是没有边权的图,用于遍历或者强连通SCC跑一波等等;第二级别就是有边权的,这下算法多了,各种最短路和最小生成树都有了,一二级别有时候可以合并,遍历时没有边权实际上边权就是1;然后第三级别就是有流量(dalao们的网络流),当然还有各种变种,比如说加个费用啊...

2018-04-17 09:02:50 302

原创 【模板】读入优化&输出优化

先列一份摘自LOJ的一份读入测试数据(数据说明一切) 以下是若干读入整数速度测试的结果(单位:毫秒)。 输入:3×1063×1063 \times 10^6 ​ 个在区间中随机生成的十进制整数。 # Lanuage [0,2) [0,8) [0,215) [0, 231) [0,263) fread G++ 5.4.0 (-O2) 13...

2018-04-11 15:31:42 553 3

原创 【题解】BZOJ 4557 [JLoi2016]侦察守卫

DescriptionDescriptionDescription给定一个 nnn 个结点的二叉树 TTT ,并给出 mmm 个需要覆盖的点,每个结点可以花费 wiw_iwi​ 去覆盖以它为中心距离不大于 ddd 的所有结点,求最小花费。SolutionSolutionSolution树形 DP我个人觉得这道题最难的部分是定状态。当 d=0d = 0d=0 的时候就是树的最大独立集问题,我...

2019-07-17 16:25:30 307 1

原创 【题解】BZOJ 4458 GTY的OJ

传送门DescriptionDescriptionDescription给定一棵 nnn 个结点的树,每个结点有一个点权 aiaia_i。选出 mmm 条不重复的路径,满足路径上的结点数在 [l,r][l,r][l, r] 范围内。求点权和的最大值。SolutionSolutionSolution这道题其实就是 超级钢琴 的树上版本,我的题解在这里 。建议先解决链上版本再拓展到...

2018-09-16 20:17:38 343

原创 【题解】BZOJ 2005 [Noi2010]能量采集

传送门DescriptionDescriptionDescription根据题目描述以及最基础的找规律(真的很基础),答案就是 ∑i=1n∑j=1m(2gcd(i,j)−1)=2∑i=1n∑j=1mgcd(i,j)−nm∑i=1n∑j=1m(2gcd(i,j)−1)=2∑i=1n∑j=1mgcd(i,j)−nm\sum_{i = 1}^{n} \sum_{j = 1}^{m}(2\gc...

2018-09-16 19:18:30 184

原创 【题解】BZOJ 2721 [Violet 5]樱花

传送门DescriptionDescriptionDescription求出有多少对 (x,y)(x,y)(x, y) 满足 1x+1y=1n!1x+1y=1n!\frac{1}{x} + \frac{1}{y} = \frac{1}{n!}SolutionSolutionSolution首先是对公式进行变形 1x+1y=1n!x⋅n!+y⋅n!=xyxy−x⋅n!−y...

2018-09-16 17:35:44 235

原创 【题解】BZOJ 1040 [ZJOI2008] 骑士

传送门DescriptionDescriptionDescription在基环树上求解最大点独立集问题。有点学术啊。那我先来解释一下吧。基环树基环树 顾名思义,就是基于一个环上的树,也就是一个树中有一个环。由于原题中把骑士看成结点,憎恨关系看成边之后就得到了一个有 nnn 个结点, nnn 条边的图,我们知道由 nnn 个结点, n−1n−1n - 1 条边组成的连通图是...

2018-09-09 14:23:38 220

原创 【模板】LCA Tarjan算法

首先要说明,Tarjan算法是离线算法,需要在算法流程中读入全部询问,一次dfs出结果,然后再一次性输出来,复杂度为 O(α(n)+Q)O(α(n)+Q)O(\alpha (n) + Q) 。Tarjan算法的核心思想是先进行一遍深度优先搜索,在讨论 LCA与RMQ的关系 的时候,我们已经论述过 uuu 向 vvv 遍历过程中深度最小的点就是 LCA(T,u,v)LCA(T,u,v)LCA...

2018-08-06 16:17:53 333

原创 【模板】LCA(欧拉序+RMQ)

平常在信息学竞赛中求LCA一般有三种办法:用倍增法求解,预处理复杂度是 O(nlogn)O(nlog⁡n)O(n\log n) ,每次询问的复杂度是 O(logn)O(log⁡n)O(\log n), 属于在线解法。利用欧拉序转化为RMQ问题,用 ST表 求解RMQ问题,预处理复杂度 O(n+nlogn)O(n+nlog⁡n)O(n + n \log n) ,每次询问的复杂度为 O(1)O...

2018-08-04 16:23:14 2978 2

原创 【模板】BSGS & Extended BSGS

BSGS(Baby-Step-Giant-Step)算法,用来解决 Ax≡B(modC)(0≤x&lt;C)Ax≡B(modC)(0≤x&lt;C)A^x \equiv B \pmod{C}(0 \leq x < C) 这样的问题。具体讲BSGS算法之前,先介绍一下离散对数。在整数中,离散对数(英语:Discrete logarithm)是一种基于同余运算和原根的一种对数运算。简单来说,离...

2018-08-02 16:11:00 330 1

原创 【题解】BZOJ 2734 [HNOI2012]集合选数

DescriptionDescriptionDescription传送门对于任意一个正整数 n≤100000n≤100000n \leq 100000,如何求出 {1,2,...,n}{1,2,...,n} \{1, 2,..., n \} 的满足只要 xxx 在子集中,2x2x2x 和 3x3x3x 就不在子集中的子集的个数(只需输出对 1,000,000,0011,000,000,00...

2018-07-15 08:00:33 256

原创 【题解】BZOJ 4033 [HAOI2015]树上染色

DescriptionDescriptionDescription传送门有一棵点数为 NNN 的树,树边有边权。给你一个在 000 ~ NNN 之内的正整数 KKK ,你要在这棵树中选择 KKK 个点,将其染成黑色,并将其他的 N−KN−KN-K 个点染成白色。将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间距离的和的收益。问收益最大值是多少。SolutionSolu...

2018-07-14 15:56:33 536 1

原创 【模板】字符串哈希 (【JZOJ3870】单词检索(search))

DescriptionDescriptionDescription小可可是学校图书馆的管理员,现在他接手了一个十分棘手的任务。 由于学校需要一些材料,校长需要在文章中检索一些信息。校长一共给了小可可 NNN 篇文章,每篇文章为一个字符串。现在,校长需要他找到这样的单词,它至少在这 NNN 篇文章中的 MMM 篇文章里出现过,且单词长度为 LLL 。可是,工作量十分庞大,但校长又急需小可可完成...

2018-07-13 21:23:30 396

原创 【题解】BZOJ 1026 [SCOI2009]windy数

DescriptionDescriptionDescription传送门windywindywindy 定义了一种 windywindywindy 数。不含前导零且相邻两个数字之差至少为 222 的正整数被称为 windywindywindy 数。 windywindywindy 想知道, 在 AAA 和 BBB 之间,包括 AAA 和 BBB ,总共有多少个 windywindywind...

2018-07-13 18:50:57 225

原创 【题解】CodeForces 55D Beautiful numbers

DescirptionDescirptionDescirption传送门一个美丽数就是可以被它的每一位非零数字整除的数。 要求寻找区间 [l,r][l,r][l, r] 内的美丽数的数目。SolutionSolutionSolution首先是计数问题的老套路,将 [l,r][l,r][l, r] 转化为 [1,r]−[1,l−1][1,r]−[1,l−1][1, r] - ...

2018-07-13 14:51:49 189

原创 【模板】卢卡斯定理

Lucas定理是用来求 CmnmodpCnmmodpC_n^m \bmod p 的值。其中:nnn, mmm 是非负整数,ppp 是素数。一般用于 n,mn,mn, m 很大而 ppp 很小或 n,mn,mn, m 不大且都大于 ppp 的情形。Lucas定理结论:Lucas(n,m,p)=C(nmodp,mmodp,p)∗Lucas(n/p,m/p,p)Lucas(n,m,p)=C(n...

2018-07-13 12:55:56 333

原创 【题解】BZOJ 2748 [HAOI2012]音量调节

DescriptionDescriptionDescription传送门给定一个初始值 a0a0a_0 以及每次可以上调或下调的量 cicic_i 和最大数值 maxmaxmax ,求出在满足 ∀i&amp;lt;n,0≤ai≤max∀i&amp;lt;n,0≤ai≤max\forall i max{ai}max{ai}max \{ a_i \} 。IdeaIdeaIdea入门级别的DP吧。...

2018-07-13 12:22:16 285

原创 【题解】BZOJ4806 炮

DescriptionDescriptionDescription传送门有一个 n∗mn∗mn * m 的一个棋盘,问在棋盘上面摆放炮且炮与炮之间互不攻击的方案数。IdeaIdeaIdea一看就是DP。看到 n,mn,mn, m 相对于状压DP的数据规模来说比较大,因此不好状压。仔细分析,炮与炮之间发生冲突当且仅当所在的行或列上有 333 个及以上的炮。而且,只要一...

2018-07-13 08:25:35 377

原创 【模板】Miller_Rabin 素数测试

如同标题所述,Miller_Rabin 是用来测试一个数是否为素数的算法。然而,Miller_Rabin是有缺陷的,这就是它单次执行所得的结果并不完全正确,不过我们可以将这个算法多执行几次来让它的正确率趋近于 100%100%100\% 。ToolsToolsToolsFetmatFetmatFetmat 小定理:若 ppp 为素数,aaa 为正整数,且 (a,p)=1(a,p)=1(a...

2018-07-12 17:52:01 540

原创 【模板】乘法逆元

如果 ax≡1(modb)ax≡1(modb)ax \equiv 1 \pmod{b} 且 (a,b)=1(a,b)=1(a, b) = 1 ,则称 xxx 是模 bbb 意义下的 aaa 的逆元,记为 a−1a−1a^{-1}。逆元可以用来在计算 tamodbtamodb\frac{t}{a} \bmod b 时,转化为 ta−1modbta−1modbta^{-1} \bmod b 。...

2018-07-12 14:04:48 843

原创 【模板】欧拉函数的线性筛法

IdeaIdeaIdea要讲欧拉筛,就要先了解欧拉函数 。该算法可以在 O(n)O(n)O(n) 时间内求出 111 到 nnn 的所有书的 ϕϕ\phi 值,在使用时需要用到以下三个性质:ϕ(p)=p−1ϕ(p)=p−1\phi(p) = p - 1 ,ppp 是素数.ϕ(p∗i)=p∗ϕ(i)ϕ(p∗i)=p∗ϕ(i)\phi(p * i) = p * \phi(i),ppp ...

2018-07-12 09:10:41 276

原创 【数论】欧拉函数

欧拉函数:对正整数 nnn ,欧拉函数是小于等于 nnn 的数中与 nnn 互质的数的个数。欧拉函数又称 ϕϕ\phi 函数,例如 ϕ(8)=4ϕ(8)=4\phi(8) = 4 ,因为在小于 888 的数中,有 1,3,5,71,3,5,71, 3, 5, 7 与其互质。欧拉函数的三条性质:如果 nnn 为某一素数 ppp ,则: ϕ(p)=p−1ϕ(p)=p−1\phi(p) =...

2018-07-12 08:16:32 425

原创 【模板】拓展欧几里得算法

IdeaIdeaIdea拓展欧几里得算法是用来求已知 (a,b)(a,b)(a, b) 时,求解一组 (x,y)(x,y)(x, y) 使得 ax+by=gcd(a,b)ax+by=gcd(a,b)ax + by = \gcd(a,b) 。因为 gcd(a,b)=gcd(b,amodb)=gcd(b,a−⌊ab⌋b)gcd(a,b)=gcd(b,amodb)=gcd(b,a−⌊ab⌋b)\...

2018-07-11 17:34:35 385

原创 【题解】BZOJ 3673 可持久化并查集

传送门 首先对于学习可持久化并查集有一个先决条件,就是学会用可持久化线段树实现可持久化数组,如果不会的可以戳这。 接下来我们就来讲讲怎么用可持久化数组实现可持久化并查集。 讲解所需要的图其实在这里面已经贴出来了,我在这里就不重贴了。主要讲讲该如何实现可持久化并查集的各个操作。 普通并查集只有查找和合并两个操作,相似的,可持久化并查集也有这两个操作。init和可持久化数组类似,建...

2018-06-26 21:01:45 247

原创 【模板】ST表求解RMQ问题

RMQRMQRMQ问题RMQ(Range&amp;nbsp;Minimum&amp;nbsp;Query)RMQ(Range&amp;nbsp;Minimum&amp;nbsp;Query)RMQ(Range \ Minimum \ Query),范围最小值问题。具体表现为一下一类问题:给出一个 nnn 个元素的数组 A1,A2,…,AnA1,A2,…,AnA_1, A_2, \dots , A_n ,求解 min(l,...

2018-06-24 21:28:56 2072

原创 【题解】BZOJ 4717 装备

传送门由于这道题是权限题,所以题面我也放在这里了(我不是权限狗)。Description【题目背景】  小Q最近喜欢上了一款游戏,名为《舰队connection》,在游戏中,小Q指挥强大的舰队南征北战,从而成为了一名dalao。在游戏中,不仅船只能力很重要,搭配合适的装备更是如虎添翼。小Q潜心研究配装三十年,终于——把装备凑齐了。【题意描述】  小Q有n艘船,m件装备。...

2018-06-24 19:30:47 267

原创 【模板】树的重心

树的重心定义:找到一个点,其所有的子树中最大的子树节点数最少,那么这个点就是这棵树的重心,删去重心后,生成的多棵树尽可能平衡。 算法流程首先,利用前向星存边建立边表。由于无向,所以要连两次边。我们用一次 dfs()dfs()dfs() 建立以1为根节点时每个结点所在子树的结点数。接下来考虑把这个点删掉的结果,如果一个非根结点有 ppp 个儿子,那么删掉这个点之后会有 p+1p+...

2018-06-18 20:03:13 2962

原创 【题解】HDU3584 Cube

传送门题目大意:你有两种操作1&nbsp;x1&nbsp;y1&nbsp;z1&nbsp;x2&nbsp;y2&nbsp;z21&nbsp;x1&nbsp;y1&nbsp;z1&nbsp;x2&nbsp;y2&nbsp;z21 \ x1 \ y1\ z1\ x2 \ y2 \ z2,将 (x1,y1,z1)(x1,y1,z1)(x1, y1, z1) 到 (x2,y2,z2)(x2,y2...

2018-06-09 21:26:18 249

原创 【题解】HDU1892 See you~

传送门题目大意:你有三种操作:S&amp;nbsp;x1&amp;nbsp;y1&amp;nbsp;x2&amp;nbsp;y2S&amp;nbsp;x1&amp;nbsp;y1&amp;nbsp;x2&amp;nbsp;y2S \ x1 \ y1 \ x2 \ y2 表示查询从 (x1,y1)(x1,y1)(x1, y1) 到 (x2,y2)(x2,y2)(x2, y2) 之间这块矩形中所有数之和。A&amp;nbsp;x

2018-06-09 20:59:28 252

原创 【模板】树状数组BIT

讲树状数组之前,首先要来夸夸树状数组。 树状数组真的是一种好东西啊~~~代码极短,又非常好写,很实用,好东西呐。夸完了树状数组,现在就来讲讲树状数组。 树状数组(Binary Indexed Tree),又名二叉索引树,Fenwick树,其处理的问题模型一般可以转化为如下形式: 定义一个数组 a[1..n]a[1..n]a[1 .. n ],并维护一下两个操作:修改,给 a[i...

2018-06-09 20:21:27 286

原创 【题解】UVa 12093 Protecting Zonk

UVa传送门 洛谷RemoteJudge传送门 题目大意:给定一个nnn(n≤10000n≤10000n \leq10000)个结点的无根树。有两种装置AAA和BBB,每种都有无限多个。 在某个结点XXX安装AAA需要C1C1C1的花费,并且此时与结点XXX相连的边都被覆盖。 在某个结点XXX安装BBB需要C2C2C2的花费,并且此时与结点XXX相连的边和与XXX相连的点的边都会被覆盖。 ...

2018-06-03 15:16:45 313

原创 【题解】UVa 1218 Perfect Service

UVa传送门 洛谷RemoteJudge传送门 题目大意:有n(n ≤ 10000)台机器组成树形结构,要求在其中的一些机器上安装服务器,使得每台不是服务器的计算机恰好和一台服务器计算器相连。求服务器最少的数量。 典型树形DP。 根据节点的情况进行分类。 d(u,0)d(u,0)d(u, 0):uuu是服务器,子节点是或不是服务器均可。 d(u,1)d(u,1)d(u, 1):uuu不...

2018-06-03 15:01:54 223

空空如也

空空如也

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

TA关注的人

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