自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P1390 公约数的和

的,不需要任何高深知识,只要会线性欧拉筛法即可的做法。,求互质的数,然后将求和式子变化变化就行了。求一下欧拉函数的前缀和,就可以。自己推出式子的感觉真好。简单而言就是套路的将求。

2024-11-28 21:36:34 911

原创 c++ 简单分数实现

结构体实现,仅有一些简单功能。

2024-11-14 11:17:43 151

原创 P4265 [USACO18FEB] Snow Boots S

号鞋子的最小丢弃次数,然后枚举从哪个格子,哪双鞋子的状态到达,注意判断能否走到这个格子。

2024-11-08 21:46:51 337

原创 AtCoder DP Contest 题目全讲(下)

前言:洛谷题单(非本人整理)本篇文章为下期(收录题目 O–>Z\text{O-->Z}O–>Z),题目比较有思维难度,值得一做。O题观察题目数据范围,允许状态压缩。设 fi,sf_{i,s}fi,s​ 表示右部中的点,与左部中 iii 个点构成匹配的集合为 sss 的方案数,答案为 fn,(1<<n)−1f_{n,(1<<n)-1}fn,(1<<n)−1​。考虑如何转移,当构成匹配集合为 sss 时,我们发现二进制表示下 111 的数量(即

2024-10-31 11:10:43 484

原创 2023 春季测试题解

但是这是错的,不过只要随机若干次,一定能得到正确的操作序列。因为答案也是对原来的密码锁进行若干次操作,所以随机化是对的。直接开二维数组记录是不可行的,由于每一次操作会覆盖整行整列,所以开两个数组,分别存储行、列的颜色。,考虑一个简单的贪心,把全局最大值和全局最小值分别放在不同行,然后每一行的贡献就可以直接算了。再思考正解,我们走的路径是不是也有某些特殊性质,来简化运算?时的最小路程,输出方案,记录从哪个状态转移过来即可。的情况时顺便判断即可,最后答案减去这些数。,还不知道,是给暴搜加剪枝的分?

2024-10-30 16:31:02 847

原创 AtCoder DP Contest 题目全讲(上)

洛谷题单(非本人整理)有一些好写的题就不贴代码了,细节较多的再放上。本篇文章为上期(收录题目A–>NA–>N),题目较为基础,进阶题目放在下期讲解(目前还在咕咕咕)。A题非常简单的方程。fimin⁡fi−1∣hi−hi−1∣fi−2∣hi−hi−2∣fi​minfi−1​∣hi​−hi−1​∣fi−2​∣hi​−hi−2​∣,递推一下就行了。B题。

2024-10-29 21:33:10 1343

原创 NOIP 2022 题解

答案是可以的,因为只有出现所有非特殊栈放满后,才会去找,而下一次再出现这种情况的位置,一定不会和之前重合,所以最多只会循环。再想,C、F 一定是由竖着的线段和横着的线段组成,把它们找到然后计算即可,计算的式子很好推。线段树查询,标记与信息的合并是好做的,关键是标记与标记的合并。左边第一个大于它的数之后,这是一段后缀,我们会进行区间赋值操作,然后将。节点是否建造军营的方案数,发现很难转移,所含的状态太多了。个数放完了,还有一个多出来的数,考虑这个数的归宿。,我们找到在它之后的最先出现在某个栈的底部的数。

2024-10-29 14:52:52 665

原创 P2560 [AHOI2002] Kitty猫基因突变

蛮冷门的一道题,虽然题面很长,但只要认真读完,你就会发现这个题的做法直接都明摆着给你了。初始化和转移及其简单,如果还不会就见代码。观察数据范围,很容易想到转为二叉树上 dp,设。进行突变,最终得到类型为。dfs 一遍子树,然后合并。号节点代表的区间,有。混合区间)的最小价值。

2024-10-28 15:57:13 514

原创 CSP-J 2024 题解

没参加,作为场外选手也来浅做一下。

2024-10-28 12:02:08 833

原创 CSP-S 2024 题解

所给代码只过了民间数据,可能与实际成绩略有出入。

2024-10-28 08:56:29 952

原创 P2048 [NOI2010] 超级钢琴

首先算区间和肯定要用前缀和,但是暴力找出所有区间然后排序求解是不可行的,考虑优化。,如果我们令它为所选区间左端点,那么右端点所属区间应为。间的区间,使选出的区间总和最大,输出最大值。然后我们就可以用优先队列维护形如。右端点区间的新的贡献,注意特判。为某个右端点,则区间和为。,用 st 表可以快速维护。

2024-10-24 19:09:11 896

原创 [ABC304Ex] Constrained Topological Sort

范围太广了,我们还要进一步缩小范围,考虑如何缩小。因为给你的是有向图,所以对于一条边。从小到大排序,然后尽可能让一个点在拓扑序中更早出现,这可以用 set 维护。然后就会发现 WA 掉了。,据此可以在拓扑排序时缩小范围,然后再按上述做法。然后比较显然的贪心是按。先判环,有环自然无解。

2024-10-24 08:58:52 778

原创 10.20梦熊十三连测第十三场

开始往左扫,把此时扫到的和加在桶里,然后从右扫,查找当前和的负数的出现次数,然后计算贡献。对于这样的题,一般考虑枚举中位数,计算它所产生的贡献。对于此题,设此时中位数为。的同理,只会变的更小。这说明原序列的单调性是不变的,就允许我们进行二分。所以先把原序列升序排序,然后两次二分分别求出第一个大于等于。对此如何计算,我们可以枚举一棵树中的边。边,这两个可以一起算。的位置,这道题就做完了。的数,经过变化后只会变的更大,,若这四点均不相同,则概率为。边,考虑一棵树中一边。,所以考虑换一种思路。

2024-10-21 09:30:14 796

原创 NOIP2023题解

若最小字符等于最大字符,由于字符串长度相同,且字符串两两不同,所以次小的一定大于另一个次大的,依然不可行,由此得证。暴力的 dp 做法似乎没有什么优化的余地了,对正解也没什么启发,但我们将其抽象为一个网格图,发现了什么?这样的转化看似影响不大,但我们再去看 Subtask 8~14,由于其特殊性质,发现只要。其中红格都是我们能到的地方,如果不理解的话一定要手动画图去体会一下,这是最关键的部分。的情况,注意处理数组越界的情况,就可以了。的数据范围很小,所以真正有用的位置并不多,只有一个区间的。

2024-10-17 17:45:53 1176 1

原创 P7453 [THUSCH2017] 大魔法师

首先矩阵乘法中的循环要展开,然后 pushdown 操作时判断 tag 是否为单位矩阵,若是单位矩阵直接 return,取模时用减法取模,不要全开 long long,这四个是最关键的。首先看见题目就知道这是道数据结构题,但发现元素之间会有影响,如果直接维护的话无法维护,那么这时矩阵就排上用场了。线段树套矩阵,可以方便地维护一些元素之间有影响的问题。种操作,我们推出各自对应的矩阵,然后线段树维护区间矩阵乘,维护乘法标记和区间和。注意标记初始化为单位矩阵,矩阵乘法没有交换律,注意顺序。接下来还有卡常部分。

2024-10-16 15:14:16 836

原创 矩阵基础运算

而矩阵乘法的运用很多,最常用的便是加速递推,可以用其优化 dp(例如动态 dp)等等。最经典的便是斐波那契数列的应用,首先把原线性递推式转化为矩阵,然后用矩阵快速幂即可解决。为了方便进行运算,我们会把矩阵设为二维数组,放在结构体里面,并重载运算符。由于矩阵也有乘法,那自然也有矩阵的快速幂,写法与普通快速幂同理。矩阵的加减法和数乘为线性运算,均为逐个元素进行运算。矩阵乘法要求两个矩阵的行数和列数相等,设。然后套个矩阵加速幂就可以了。这是我的矩阵加减乘法的模版。

2024-10-16 10:02:17 1589

原创 计数杂题选做(1)

为 CSP-S 和 NOIP 做准备,所以做的题难度并不是非常大,通常以绿蓝题为主。

2024-10-15 12:01:54 777

原创 NOIP模拟赛题解

①:本题的反悔贪心可以再细讲一下,首先比较简单的贪心策略是我们想每次都选一个最大子段和,然后把这段删去,然后再去找一段,而这也显然是错的。对此我们考虑反悔自动机,此题的策略即为上述所说,我们通过巧妙的构造差值,使得最终得以达到反悔的目的,而这个操作需要我们用线段树来维护,最终此题的解法就出来了。若有交集,那么它们相交的部分在之前加了一次,在这一次又减掉,说明它不是最优的,被我们反悔掉了,并且此时两区间仍然不相交,依旧符合题意。个数组分别维护,由于我们枚举的位置的单调性,这个复杂度是做到可以线性的。

2024-10-14 18:50:40 909

原创 线段树合并基础

这个时候就可以考虑线段树合并了,我们对每个节点都开一颗以颜色为下标的线段树,维护颜色出现的最大次数及出现最多的颜色,而这两个操作非常简便。线段树合并是指建立一棵新的线段树,这棵线段树的每个节点都是两棵原线段树对应节点合并后的结果。由此,它多被用于维护树上或图上的信息,只要灵活选好每个点上线段树的下标含义,维护的信息,可以帮助你切掉许多困难的题。题目过水,代码就不贴了。,有用树上启发式合并来做的,但你发现,这道题线段树合并直接切掉了,甚至都没几十行代码。的所有儿子的线段树合并到它的线段树上,这道题就解决了。

2024-10-12 16:17:01 588

原创 [ARC154E] Reverse and Inversion

等类似逆序对,顺序对的信息,我们考虑用上述方法简化此条件。②:一些让我们计算最终位置的题型中,从对称等概率的关系去考虑,可能会挖掘出意想不到的性质。对于这样的题,先不要绕到具体操作里出不来。在每一次翻转后的具体位置是不可直接计算的,所以我们只需要算出。再将其代入上式即可得到答案,代码并不长,注意取模即可。在所有操作中都没被翻转的情况,它最终期望位置为。它的含义是剔除掉所有区间翻转方案中翻转到。于是式子变的可求,此时再考虑区间翻转。对于题中式子,先不考虑翻转,设。,那么翻转的中心显然是。

2024-10-10 19:43:58 823

原创 P3810 【模板】三维偏序(陌上花开)

CDQ 分治是离线算法,可以解决一些与点对有关的问题,也可以将动态问题转为静态。在此题中,我们有三个维度。求解三维偏序问题的方法很多,我用的是 CDQ 分治,比较好写,但时间复杂度会劣一些。,先分别递归处理左右两个子区间,然后再考虑跨区间的贡献。两维都满足了,我们可以开一个值域树状数组,用以维护。②:进入 CDQ 分治,设此时处理区间为。从小到大排序,这样满足任意。

2024-10-09 16:53:18 1216

原创 P1903 [国家集训队] 数颜色 / 维护队列

中出现的不同数的个数。询问离线,然后树状数组——怎么还带修改?这个时候就要请出带修莫队了。的时间复杂度解决一些区间询问,支持离线的问题。带上修改操作也不难维护,只需要增加一个。,表示该次询问前有几次修改,然后加上。接下来就是纯板子了,代码很好写的。给你一个序列,多次询问。

2024-10-09 09:56:19 370

原创 字符串哈希简单题

的形式,前缀和后缀相等,很自然的想到 kmp 算法。我们枚举起点,然后从起点开始跑 kmp,对于每个位置的 nxt 数组,它可能会有前缀和后缀重叠,这并不满足条件,所以可以跳到 nxt[nxt[j]],直到满足条件或判断无解为止。数量相等,即回文串长度为偶数,所以我们可以枚举对称中心,二分找最长回文子串长度,这个就是字符串哈希很经典的操作了。我们可以暴力枚举全部区间,然后开一个 map,将。,可能有点悬,再进一步优化一下。然后这道题就做完了,不过还是有些坑点,详见代码。的范围,不大也不小,

2024-10-08 22:26:56 1066

原创 P4396 [AHOI2013] 作业

次询问,我们想要平衡这两个过程,就可以应用值域分块。按值域分块,单点加减是可以。,启示我们可以开个权值线段树或值域树状数组,来维护数值。然而这样的时间复杂度是。区间询问,不带修改,支持离线,直接考虑莫队。出题人很良心的把值域控制在。同阶,故经过值域分块的平衡后,此题的时间复杂度就被我们优化到。再想莫队算法是如何实现的,发现在跑莫队的过程中,实际最多只有。做到的,并且实现很容易。的序列,多次询问,每次询问序列。的,对于此题的数据范围很难跑过。中的数的个数及数值个数。

2024-10-08 11:39:04 599

原创 CSP-S复习:图论题选讲

今天跟着南外复习的图论,十道题,感觉质量不错,就拿出来总结一下。

2024-10-07 18:15:04 1682

原创 P3792 由乃与大母神原型和偶像崇拜

这里有一个常用的 trick,我们可以维护每个数前驱(一个数的前驱就是与它相等的最近的那个位置),然后只需要查询区间中前驱最大值即可。若前驱最大值在左端点外,则区间内无重复数字,你可以画图手玩一下,原因其实很好理解。具体说,就是用线段树维护区间最大最小值,因为是一段连续的数,区间极差肯定与区间长度相等。但是又有新问题了,因为题中带单点修改,所以我们还要考虑修改对前驱的影响。自然可以想到先离散化,然后对每个数都建一个 set,维护这个数出现的所有下标,接下来就很好维护了。不愧是 lxl,硬控我一个半小时。

2024-10-06 16:42:56 508

原创 组合数求法汇总

另外,Lucas 定理也有适用范围,它一般适用于模数并不是很大(一般是小质数,范围在。的范围不是很大的情况,而限制没有,即方便写高精度,也可以对任意模数取模,唯一缺点便是时间复杂度为。,在取模的意义下,除一个数等于乘它的逆元,我们就可以线性求出阶乘逆元,然后。我们上文说了逆元求组合数需要模上一个质数,那么在模数任意的情况下如何求解?(斯特林数,如果不知道的话很难推出来,可以学一学)的方案,根据加法原理,令它们相加就得到了。(梦回高中数学,需要推出式子,然后高精度求)非常大,模数非常小,的情况。

2024-10-05 17:07:08 2307

原创 P2480 [SDOI2010] 古代猪文

然后就可以运用 Lucas 定理求出这些组合数之和,再上 CRT 求出。发现指数可能非常大,而模数为质数,此时可以考虑运用扩展欧拉定理来化简。却不是质数,此时可以先对其质因数分解,若其质因数的指数均为。可以运用中国剩余定理来求解。

2024-10-04 19:20:21 1076

原创 中国剩余定理(CRT)模版

【代码】中国剩余定理(CRT)模版。

2024-10-04 17:47:46 187

原创 一些简单的数论模版

算是为数不多的不用莫反的数论分块题了,适合做简单的模版。用处:求解线性同余方程。辗转相除法求 gcd。

2024-10-04 16:49:17 250

原创 P11157 【MX-X6-T3】さよならワンダーランド

对于这样的题,不急着做,先简化一下式子,令。,维护最小值下标,最后这道题就做完了。由此可以想到 st 表,一个下标为。,所以带入并移项可得到。

2024-10-04 10:23:40 757

原创 三道相似的筛法题

细心观察,发现这几道题都考察了筛法相关知识,但数据范围巨大,即便是线性筛、杜教筛也无法解决。但给定的区间长度却可以接受,所以就出现了比较巧的做法。

2024-10-03 21:42:28 842

原创 P3381 【模板】最小费用最大流(EK算法)

实际上就是把 bfs 的过程换成了 spfa。费用流模版,用 EK 跑的。

2024-09-29 22:04:15 168

原创 二分图最大匹配题目乱讲

匈牙利算法或 dinic 算法均可。然后就可以看下文了。

2024-09-28 18:43:59 925

原创 P3376 【模板】网络最大流(dinic算法)

③:重复①、②步骤,直到在残留网络中找不到。②:在层次图中找出最大的增广流,并入答案。①:在残留网络中 bfs 出层次图。

2024-09-27 16:55:55 212

原创 P3376 【模板】网络最大流(EK算法)

网络流真的很有意思,写最大流前必须要理解清楚增广等相关概念,推荐。③:重复①和②步骤,直到找不到增广路,则此时得到最大流。oi wiki的讲解,潜心钻研一下相关证明。的增广路,记路径上残留容量最小值为。②:给找到的增广路上的每条边上流量加。①:在残留网络上不断找。,给对应的反向边退掉。

2024-09-27 15:54:06 376

原创 P4630 [APIO2018] 铁人两项(圆方树模版)

在此贴出适合我体质的模版,至于讲解,咱肯定讲的没小粉兔好o(╥﹏╥)o。圆方树相关的东西小粉兔讲的太详细了!

2024-09-23 22:11:31 418

原创 浅谈割边及边双连通分量(e-dcc)

在图论中,与连通性相关的问题非常多。对于无向图,有诸如割点、割边、圆方树、双连通分量等等各种概念及算法。那么割边是什么?对于无向图,若删掉一条边后,这张图的连通分量数增加了,那么这条边便是割边。

2024-09-23 17:18:14 1428

原创 P3388 【模板】割点(割顶)

【代码】P3388 【模板】割点(割顶)

2024-09-23 13:55:57 164

原创 P3275 [SCOI2011] 糖果

的边,再跑一遍tarjan,缩完点后在DAG上求最长路。这些就是比较套路的操作了,相信大家都会做了。的最小解,就可以想到最长路了。先对题中给出的限制条件进行转化。首先看到题第一眼就知道是个差分约束题,然后题中求。非常经典的一道题,第二次做又调了半天。,对每个点连一条边权为。

2024-09-22 20:50:17 875

空空如也

空空如也

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

TA关注的人

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