自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数论】莫比乌斯反演(欧拉反演)进阶-杜教筛

莫比乌斯反演进阶,杜教筛,线性筛

2024-04-03 13:59:25 925

原创 【数据结构】树上莫队

树上莫队

2024-04-03 13:34:43 690

原创 【数论】莫比乌斯反演巩固1

莫比乌斯反演,莫比乌斯函数,gcd

2024-03-09 13:46:01 996

原创 【数论】再谈线性筛(莫比乌斯反演)

莫比乌斯反演,线性筛

2024-02-29 20:16:37 726 1

原创 【数论】浅谈线性筛

欧拉函数。

2024-02-26 13:59:45 864

原创 【数学笔记】一元n次不等式,分式不等式,绝对值不等式

这个采取分类讨论,类比一下。稍微理解一下,结合二次函数。的大小关系式,并使用。口诀为“奇穿偶不穿”。然后就跟上面一样了。

2024-01-25 21:15:58 690

原创 【数学笔记】集合及简要逻辑

ABC......abc......{a是A中的元素:a属于A,记为a∈Ab不是A中的元素:b不属于A,记为b∈A​}(1)确定性(2)互异性(3)无序性∅(1)N(2)Z(3)Q(4)R(5)N​或N∗(6)C列举法11102357500123⋯500123⋯2⎩⎨⎧​数集点集⋯​有限集无限集​注意⋯∅∅3(特殊性质描述法AIpx)AAx∈I∣。

2024-01-19 08:54:39 1036

原创 【题解】洛谷 CF11D A Simple Task

求无向图中的简单环个数,保证不存在重边和自环。简单环:除起点外,其余的点都只出现一次的回路。就为起点,那就是找到环了,直接统计即可。个节点走过的状态,起点为。

2023-11-29 13:51:09 965

原创 【题解】P2622 关灯问题II

现在这些灯都是开的,给出所有开关对所有灯的控制效果,求问最少要按几下按钮才能全部关掉。一个整数,表示最少按按钮次数。的话,如果这盏灯是关的,那么把它打开,否则也不管;,那么当这盏灯开了的时候,把它关上,否则不管;然后暴力枚举当前状态按下第几个开关后的状态。个按钮,对于所有的灯都有一个效果。的大小并不确定,无法保证DP条件中的。考虑用宽搜,存的状态为当前灯的状态。其中,按下每个开关,对于其对第。,无论这灯是否开,都不管。,那按完后这个灯一定关着。,那按完后这个灯一定开着。串来表示灯的开关状态,

2023-11-29 13:08:35 1193

原创 【题解】P2627 [USACO11OPEN] Mowing the Lawn G 题解

在一年前赢得了小镇的最佳草坪比赛后,Farmer John 变得很懒,再也没有修剪过草坪。现在,新一轮的最佳草坪比赛又开始了,Farmer John 希望能够再次夺冠。只连续的奶牛,那么,这些奶牛就会罢工去开派对 😃。因此,现在 Farmer John 需要你的帮助,计算 FJ 可以得到的最大效率,并且该方案中没有连续的超过。然而,Farmer John 的草坪非常脏乱,因此,Farmer John 只能够让他的奶牛来完成这项工作。第一行:一个值,表示 Farmer John 可以得到的最大的效率值。

2023-11-28 13:28:16 912

原创 【算法】状压DP-2

状态压缩就是使用某种方法,简明扼要地以最小代价来表示某种状态,通常是用一串01数字(二进制数)来表示各个点的状态。这就要求使用状态压缩的对象的点的状态必须只有两种,0 或 1;当然如果有三种状态用三进制来表示也未尝不可。状态压缩DP:顾名思义,就是用状态压缩实现DP。不过呢,对于装压DP来说,不一定是二进制。状压DP主要分为集合式和棋盘式,本文只讨论棋盘式。集合式点这里。对于棋盘式的状压DP,有几种思考方式。每行每行考虑,逆推DP。每列每列考虑,逆推DP。

2023-11-28 13:03:13 384

原创 【题解】洛谷 P2704 [NOI2001] 炮兵阵地

现在,将军们规划如何部署炮兵部队,在防止误伤的前提下(保证任何两支炮兵部队之间不能互相攻击,即任何一支炮兵部队都不在其他支炮兵部队的攻击范围内),在整个地图区域内最多能够摆放多少我军的炮兵部队。如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格。从图上可见炮兵的攻击范围不受地形的影响。由于每一行都受上两行的状态的影响,所以我们需要开三维数组。一行一个整数,表示最多能摆放的炮兵部队的数量。的网格地图上部署他们的炮兵部队。

2023-11-27 14:07:12 1371

原创 【算法】状压DP-1

状态压缩就是使用某种方法,简明扼要地以最小代价来表示某种状态,通常是用一串01数字(二进制数)来表示各个点的状态。这就要求使用状态压缩的对象的点的状态必须只有两种,0 或 1;当然如果有三种状态用三进制来表示也未尝不可。状态压缩DP:顾名思义,就是用状态压缩实现DP状压DP主要分为集合式和棋盘式,本文只讨论集合式。

2023-11-27 13:33:51 968

原创 【题解】洛谷 P1433 吃奶酪

一只小老鼠要把它们都吃掉,问至少要跑多少距离?处理完这些之后,就是裸的状压DP了,直接套模板即可。考虑状压DP,定义状态。点,走过的点的状态为。,然后枚举由哪个节点。两点之间的距离公式为。

2023-11-25 11:13:12 950

原创 【题解】洛谷 CF788B Weird journey

而对于删除的第二条边,如果是非自环,那么图就有两个积点,存在欧拉路径,如果是自环,那么图所有点为偶点,存在欧拉回路。否则我们在分析:由于我们是将每条边当作两条边的,那么对于建的图来说,每个顶点的度数为偶数,及一定存在欧拉路。条路径仅走一遍,问不同的路径总数有多少,如果仅走一遍的两条边不同则将这两条路径视为不同。如果删除了一个自环,那剩下的所有点的度数仍然为偶数,所以可以随意删除下一条边。如果删除两条非自环,如果可行,那么它们一定共顶点,只有这样才会使共顶点的度数。,为积点,存在欧拉路径。

2023-11-25 08:43:54 1067

原创 【算法】FFT-1(递归实现)(不包括IFFT)

个数就可以了,问题缩小了一半,而缩小后还能继续缩小,所以我们用类似线段树的分治(递归)来解决它,时间复杂度。但是光有点值还是不够的,我们还要转换为数值,这就是 IFFT。没错,只有后面一坨是相反的,这说明我们可以。高中课本里讲过复数,不过不知道也没关系,这里会讲。但是,当我们把这个多项式看成一个函数时,我们将。接上文复数的知识,每个单位根在复平面上的坐标为。次单位根的每一个根,及方程的每一个解。的每一项相乘,最后累计,时间复杂度。个点的坐标,它们确定唯一的多项式。复数的运算其实跟实数的运算差不多。

2023-11-24 13:25:40 1418

原创 【题解】洛谷P6423 [COCI2008-2009#2] SVADA

肯定是二分了,于是我们在考虑怎么计算生产和开的椰子数。只第一种猴子的两个相关数据,具体解释请参照题目描述。只第二种猴子的两个相关数据,具体解释请参照题目描述。生产的椰子个数很容易得出为每个猴子生产的椰子个数总和。秒的椰子,找出一个分界点,使得分界点前生产的椰子。,表示猴子在花园中度过的总时间,以秒为单位。题目说的有点绕,但读懂题意后还是很简单的。只猴子能开椰子,一共生产/开了。最终看 cnt 是否大于。,表示第一种猴子的只数。,表示第二种猴子的只数。只猴子能生产椰子,有。

2023-11-24 13:00:03 770

原创 【数据结构】带修莫队

带修莫队就是在莫对队的基础上加了修改操作,需分析题目给的修改操作要如何撤销。

2023-11-23 14:07:23 248

原创 【题解】洛谷P3443 [POI2006] LIS-The Postman 题解

最后还有一个小技巧,及我们如果合并了边,在最后输出时还有点儿麻烦,所以=我们可以加几个数组,让程序在求欧拉回路时如果碰到了指定序列(合并后)中的边,就只能遍历完序列的边,这样输出也方便。那么在我们就来考虑怎么将边合成了,如果直接按照每条序列合并的话,会发现可能存在几条序列刚好有公共部分从而卡掉我们的程序。所以我们先给每条边编上一个编号,在维护指向这条边的上一条边和这条边指向的下一条边,及前驱和后继。而维护起来也是很容易的,用 map 存边的编号,开个数组记录后继,再用循环不断合并边。

2023-11-23 13:33:59 179

原创 【算法】求割点和割边

无向图中所有能互通的点组成了一个连通分量。在一个连通分量中,如果删除某一个点,会把连通分量分为两个或更多,这种点称为割点。在一个连通分量中,如果删除某一条边,会把这个连通分量分成两个,那么这条边称为割边(桥)。通俗的讲,就是在无向图的一个连通块中,删除了一个点/一条边,这个连通块就不连通了,那么这个点/这条边就是割点/割边。

2023-09-23 13:38:00 297

原创 【数据结构】普通莫队

莫队算法是由莫涛提出的算法,是一种处理区间问题的暴力数据结构,时间复杂度为OnnOnn​。

2023-09-18 19:54:52 64

原创 NOIP2011提高组 P1313

NOIP2011提高组 二项式定理

2023-08-27 14:47:49 39

原创 【题解】洛谷 P9584

个点两两之间距离求出来。这一步可以转换为求路径,及每条边经过的次数。个点到连接点的距离之和和新连接的边的经过次数。个点的距离之和可以转换为两个东西:剩下。个点两两之间距离之和也可以求出来。,我们发现,对于一个子节点。为根节点的子树有几个节点。后,对于每次的询问,可以。那么在第一次 dfs 中,在第二次 dfs 中而前。个点,我们发现其和前。

2023-08-27 07:58:49 41

原创 【算法】最大子矩阵——非悬线法

首先明确一些概念。1、定义有效子矩形为内部不包含任何障碍点且边界与坐标轴平行的子矩形。如图所示,第一个是有效子矩形(尽管边界上有障碍点),第二个不是有效子矩形(因为内部含有障碍点)。2、极大有效子矩形:一个有效子矩形,如果不存在包含它且比它大的有效子矩形,就称这个有效子矩形为极大有效子矩形。(为了叙述方便,以下称为极大子矩形)3、定义最大有效子矩形为所有有效子矩形中最大的一个(或多个)。以下简称为最大子矩形。【定理1】在一个有障碍点的矩形中的最大子矩形一定是一个极大子矩形。

2023-08-17 16:03:22 629

原创 【算法】最大子矩阵——悬线法

悬线法思路:悬线的定义,就是一条竖线,这条竖线要满足上端点在整个矩形上边界或者是一个障碍点。然后以这条悬线进行左右移动,直到移至障碍点或者是矩阵边界,进而确定这条悬线所在的极大矩阵。我们定义hijh[i][j]hij表示点ij(i,j)ij的悬线的长度。(及以点ij(i,j)ij,为边界的最大子矩阵的宽)lijl[i][j]lij表示点ij(i,j)ij的悬线往左最长能延伸到哪。rijr[i][j]rij表示点ij(i,j)ij。

2023-08-17 15:42:04 668

原创 【KMP】从入门到理解

Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。以下讲解均为个人理解,如有错误,请各位大佬指正,不喜勿喷。KMP的算法十分巧妙,时间复杂度为OnmO(n+m)Onm,甚至比哈希还好用。

2023-08-09 20:18:17 94

原创 【题解】洛谷 CF4A

判断输入的正整数能否分成两个正偶数,能则输出YES,不能则输出NO。首先,能拆成两个偶数的一定是偶数。也不对,0不是正偶数。

2023-08-09 19:47:38 79

原创 【题解】洛谷 CF1A

用 a×a 的石板覆盖 n×m 的长方形广场,允许石板覆盖的区域超出广场,不允许打破石板,石板的两侧应平行于广场两侧,要求覆盖完广场所需的石板数量最少是多少。但这也不是对的,因为可能覆盖不完全,导致你还要多一张,而C++的除自动向下取整,所以我们还要判断是否要+1。要求用a* a的覆盖n*m的,我们可以想到算出它行需要几个,列需要几个,再乘起来就好了。于是就有人说道:这也太简单了。

2023-08-09 19:34:29 104

原创 【题解】洛谷 CF139B

每个房间的四周要贴上同种墙纸,多了也不能用到别的房间,墙纸可以裁剪但不能旋转,且首尾不能拼接(竖直方向必须是同一张墙纸,不能底下用第一张上面用第二张),问至少需要多少钱。然后我们就可以开始贴壁纸了,这个就不说了,计算过程很简单,看程序即可。所以我们直接暴力枚举每一个房间的最小花费,再累加即可。有 n 个房间,m 种墙纸,第。种墙纸的长宽价格分别是。个房间的长宽高分别是。

2023-08-08 21:28:10 30

原创 【题解】洛谷 CF141E

有一个 n 个点 m 条边的无向图,每条边可能有两种颜色 S 或 M ,请你判断是否存在并输出一种这样的方案,使得其生成树中边的颜色为 S 和 M 的正好各占一半。如果无解,输出 −1 ,否则先输出这样的生成树的边的个数,再输出一种合法的情况的边的集合。我们先来分析一下什么情况是合法的,什么情况是不合法的。

2023-08-08 20:17:52 65

原创 【题解】洛谷 CF708C

给定一个含有n个点的树,如果以某点i为根,其所有的子树的大小(节点个数)都不大于n/2,则称这个点为该树的重心,现在你有一种操作,操作可以任意删除树中的一条边,然后再任意加入一条边,删除和加入后还要保证是一棵树,问第i个点是否可以通过这种操作变成树的重心,如果可以输出1,若不不行,输出0。我们一定是从这个子树里面选一个子树接在当前的根上面,否则不是最优的,那么就要从该子树里面找到一个小于等于。题目是让我们求每个点作为根节点时能否成为树的重心,所以我们用换根DP的做法来解这题。同时,别忘了更新up[i]

2023-08-07 21:39:49 44 1

原创 【题解】洛谷 CF358A

种状态,分别是外离,外切,内切,相交,内含。其中有交点的是外切,内切,相交。由于我们知道了直径,所以圆心的位置是可以算出来的,所以圆心距也能算出来。轴重合,显然不为所求。所以我们就是要判断是否有两圆相交。,若两圆相切,则切点在两圆连心线上,而两圆圆心都在。连线作为直径向上作半圆,问是否有除x轴上的交点。根据数学书的某一页,两个圆一共有。所以我们就可以开始暴力出奇迹了。轴上,所以其连心线也一定和。所以我们直接暴力枚举。

2023-08-07 19:07:06 36 1

原创 【题解】洛谷 P4047

我们知道,同一个部落的野人总是生活在附近。我们把两个部落的距离,定义为部落中距离最近的那两个居住点的距离。聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗。对于任意一种部落划分的方法,都能够求出两个部落之间的距离,聪聪希望求出一种部落划分的方法,使靠得最近的两个部落尽可能远离。我们先算出边权,然后从小到大排序,然后把小的边划分到一个部落里,这样任意两个部落间的最小距离就一定大于等于这条边。

2023-08-07 11:14:28 40 1

原创 【题解】洛谷P1991

任意两个配备了一条卫星电话线路的哨所(两边都有卫星电话)均可以通话,无论他们相距多远。而只通过无线电收发器通话的哨所之间的距离不能超过 D,这是受收发器的功率限制。收发器的功率越高,通话距离 D 会更远,但同时价格也会更贵。收发器需要统一购买和安装,所以全部哨所只能选择安装一种型号的收发器。换句话说,每一对哨所之间的通话距离都是同一个 D。你的任务是确定收发器必须的最小通话距离 D,使得每一对哨所之间至少有一条通话路径(直接的或者间接的)。2 种不同的通讯技术用来搭建无线网络;同时,这里的ans应该是。

2023-08-07 10:29:57 30 1

原创 【算法】最小生成树-Kruskal

Kruskal算法的思想比Prin好理解一些。先把边按照权值进行排序,用贪心的思想优先选取权值较小的边,并依次连接,若出现环则跳过此边(用并查集来判断是否存在环)继续搜,直到已经使用的边的数量比总点数少一即可。证明:如果某个连通图属于最小生成树,那么所有从外部连接到该连通图的边中的一条最短的边必然属于最小生成树。所以不难发现,当最小生成树被拆分成彼此独立的若干个连通分量的时候,所有能够连接任意两个连通分量的边中的一条最短边必然属于最小生成树。

2023-08-07 10:10:36 55 1

原创 【算法】高精度 +

高精度加法

2023-08-07 09:02:29 56 1

原创 C++初学者——需要掌握的函数1

对于两个数n和m,这两个函数能快速比较他们的大小。

2023-08-06 22:04:58 28

原创 【题解】洛谷 CF1076B

给定一个整数n,按照如下算法进行操作如果1.n=0,结束算法;2.找到n的最小质因子;3.n−=d并回到操作1;

2023-08-06 21:08:06 31

原创 【换根DP例题】——P3047 [USACO12FEB] Nearby Cows G

给你一棵 n 个点的树,点带权,对于每个节点求出距离它不超过 k 的所有节点权值和 m i。

2023-08-06 20:00:28 44

原创 【题解】洛谷 CF334B

他认为,任何像样的八点集都必须由三条不同的整数垂直直线和三条不同整数水平直线的所有成对交集组成,除了这九点的平均值。输入8个点的坐标,如果这八个点是由三个不同的横坐标和三个不同的纵坐标任意组合而成的9个点中的外围8个点,输出 “respectable”,否则输出"ugly"。其中,红点是合法的,蓝点是不合法的。了解完这些之后我们就可以打代码了。个点不能有重复的(否则就没有。个点能否组成如图的红色点。值的不同的个数必须恰好有。而我们的问题就是求给出的。个,这样才能满足上图。个点组成了一个矩形。

2023-08-06 19:44:29 30

空空如也

空空如也

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

TA关注的人

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