自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 题解:CF2093B Expensive Number

题目要求将给定数字删除部分位数使其代价(数值除以各位数之和)最小。最优解是将数字变为一位非零数(代价为1),此时需要删除其他所有位。解法是找到从右起第一个非零位,计算删除其后所有位和该位前非零位的总数。代码遍历字符串实现这一逻辑,时间复杂度为O(n)。

2025-06-12 15:31:15 488

原创 点双连通分量,边双连通分量

本文介绍了图论中的两种连通分量算法。点双连通分量(v-dcc)定义为不含割点的极大连通子图,通过Tarjan算法识别割点(满足dfn[u]<=low[i]的非根节点或多子树的根节点),并用栈保存节点来划分点双。边双连通分量(e-dcc)则是极大不含桥的连通子图,其判定条件为dfn[x]<low[y],算法同样基于Tarjan,通过比较dfn和low值识别桥并划分边双。两种算法均采用深度优先搜索和栈结构实现分量划分,核心代码展示了具体的实现逻辑。

2025-06-03 16:07:21 662

原创 寒假学习笔记【匠心制作,图文并茂】——1.20拓扑、强连通分量、缩点

本文介绍了两种重要的图论算法:拓扑排序和强连通分量(SCC)。拓扑排序是将有向无环图(DAG)节点线性排序的算法,通过不断移除入度为0的节点实现。强连通分量则是图中极大强连通子图,Tarjan算法通过深度优先搜索和dfn/low数组标记来识别SCC。文章还介绍了缩点技术,即将SCC合并为单个节点构建新图,便于后续处理。这两种算法在解决图论问题时非常有用,尤其适合处理依赖关系、环路检测等场景。

2025-05-31 23:54:59 1215

原创 题解:AT_abc244_e [ABC244E] King Bombee

本文介绍了一道图上的动态规划(DP)问题,主要涉及求方案数。通过分析题目中的不定量,确定了DP的三维状态:当前所在的点、总长度和经过特定点X的次数。文章详细描述了状态转移方程的推导过程,并提供了AC代码的实现。代码中使用了邻接表存储图结构,并通过三重循环进行状态转移,最终输出结果。该问题展示了如何通过DP解决复杂的图论问题,适合对DP和图论有一定基础的读者学习。

2025-05-20 16:55:15 823

原创 重庆 ICPC 比赛游记

2025年5月9日至10日,作者参加了一场编程比赛。比赛前一晚,作者因激动而难以入眠,收拾了四本书和大量零食,但书基本没用。比赛当天,学校要求6:20集合,作者因睡眠不足状态不佳。7:20乘坐高铁,途中完成少量作业后与同伴刷视频。10:00抵达比赛地点,但比赛已开始。作者迅速进入考场,开局一小时成功解决A题和F题,但随后四小时未能再解出其他题目。赛后,老师请吃重庆火锅,作者对火锅赞不绝口。总结中,作者认为这是一次宝贵的历练,并决定不再与某位队友组队,同时强烈推荐重庆火锅。

2025-05-17 22:50:48 492

原创 题解:AT_abc245_e [ABC245E] Wrapping Chocolate

我们可以这么干:首先按照长排序(具体怎么排大家自己想),然后对于每一个巧克力的宽,我们在盒子中找到能包含它的,全部推入一个数组中,接着对这个数组二分找第一个能容下它的。那排序我们只能排序一个量,但题目中有长宽两个变量,我们怎么排序呢?这时,我们就需要 OI 中一个很重要的思想:化二维为一维。题目简化:给定每个巧克力和盒子的长宽,已知每个盒子只能放一块巧克力,并且必须保证巧克力能放下,求是否所有巧克力都能放入。,瞬间就想到了两个东西:二分和排序。因为二分就需要排序,所以这里肯定两种都用了。

2025-05-04 18:46:33 1017

原创 状压 DP 详解

状压 DP 其实约等于一个 DP 的小技巧,一般应用在处理一个或多个集合的问题中(因为状压 DP 的下标就是一个集合),而且在nnn太大的时候建议不要使用这种方法。(如果你不懂,那么就继续往下看。好吧你本来就不懂。

2025-05-02 22:09:57 1047

原创 4.27比赛总结

本来应该ACAC的,结果挂了 80pts……完美ACAC!理论上来讲可以拿到 50pts,但因为一些奇奇怪怪的计算机底层问题而WAWA了……(还有TLETLE。根本不会,直接输出了样例,骗到 8pts。总分:129pts,满分 400pts,反正我不满意。

2025-04-29 17:17:51 970

原创 数位 DP 详解

数位 DP 是一种用于数字数位统计的 DP,是一种简单的DP 套路题。(其实一点都不简单……)

2025-04-26 14:52:40 1061

原创 题解:CF2072F Goodbye, Banker Life

因为题目中有异或,而跟异或相关的有一个东西:加法。,跟题目中的一个条件很像,正好也能说明这个思路大概率是对的。但整个图表只有 0 和 1,没有其他的数,这咋办呢?行后的图,不难发现:每一行都是对称的,但规律并不是很明显,你们也可以尝试着自己多列几个看看能不能找出规律。前言:怎么说呢,这道题说简单也不简单,说难也不难,简单到找规律也可以写出来,难到不想找规律几乎想不出来……题目简化:没什么好简化的,题目已经说的很清楚了,就是求一个表的第。,这样就成了一个 01 序列,更方便我们理解后面的东西。

2025-04-24 15:33:48 755 1

原创 题解:CF2072E Do You Love Your Hero and His Two-Hit Multi-Target Attacks?

其实不难发现:上面的那个公式就是要两个点坐标的直线距离等于横纵坐标之差的和,相当于一个直角三角形要求两直角边的和等于斜边长度。那因为三角形中任意两边长之和一定大于第三边,所以这肯定不是一个三角形,只能是一条平行于。但我们可以在上面的方法基础上改良一下:我们只需要把一些点放在同一行,那么就会少很多的点,那我们每在一行上多放一个点,就会多多少个满足条件的答案呢?很明显,就是当前这一行上的点的数量,到这,这道题就被我们完美解决了。但题目也不是吃素的,题中给了。,所以这个方法明显不行。,求这些法杖的坐标。

2025-04-22 14:54:41 730

原创 背包 DP 详解

按照我们之前的状态转移方程,我们应该拿原本的旧的状态来更新新的状态,但现在我们却拿我们计算好了的新的状态来更新更新的状态,这是完全不符合的,而倒过来循环正好就能避免这种事情的发生。比如说上面的状态转移方程,我们会发现 DP 的第一维只与当前状态与上一状态有关,而与其他的无关,所以其它空间就是被浪费了的,所以我们只需要把第一维开个。背包 DP,说白了就是往一个背包里扔东西,求最后的最大价值是多少,一般分为了三种:01 背包、完全背包和多重背包。,这可是一个极其庞大的数字,这是我们就要请上我们的滚动背包!

2025-04-19 22:31:13 1027

原创 CF1016赛后总结

由于最近在半期考试,更新稍微晚了一点,还望大家见谅(保佑我考好一点)。

2025-04-19 21:52:37 1200

原创 DP 入门

或者是数组(建议用数组,因为后面还要二分)保存当前的 LIS,那么一个点如果大于当前的队尾,就可以直接和前面的子序列连上,如果不是,那么就找到最后一个小于它的,因为这样前面的序列就可以更小,更符合后面的发展,而因为整个数组是有序的,所以这个过程我们可以用二分来解决。首先我们可以与上一个连续子序列和连在一起,但只能是上一个点的,也可以与之前的断开,自己单独做一个子序列,然后在这两个之间做个选择就行了,由此我们得到了状态转移方程(点有⼀个对⽅的⻢,该⻢所在的点和所有跳跃⼀步可达的点称为对⽅⻢的控制点。

2025-04-12 09:38:18 972

原创 题解:AT_abc242_d [ABC242D] ABC Transform

怎么说呢,看到这道题的后我瞬间就想到了分治和二叉树(主要是因为一个字母可以分成两个字母),于是我就写了个 dfs,但有个问题:题目给的数据范围是。那么多,在到了某个点后就必然是某个数列的第一个。表示以现在这个节点为根节点,我上一个要求的点是左子树的还是右子树的,为了方便,我在最初是用的。AC 代码(代码中用了大量的三目运算符压行,看不懂三目运算符的同学请先看。表示我要求的点(相当于没有左子树也没有右子树的点)。,而写二叉树则是一层一层往上跑,这不就成了。然后就可以开始安心的写代码了,首先定义一个。

2025-04-10 16:09:02 1273

原创 区间 DP 详解

每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻。试找出一种合理的方法,使总的代价最小,并输出最小代价。分割型,指把一个区间内的几项分开拆成一份一份的,再全部合起来就是当前答案,可以理解为合并型的另一种(合并型详见下面),它的时间复杂度一般为。合并型,一般指把这一个区间内的相邻两项合在一起,每次代价为这两项的和,求最小代价。呗),但这种类型很少见,我基本翻遍了全网才找到了这一道题,其余的基本都是第一种,所以各位同学终点记第一种就行,第二种做一个拓展。

2025-04-08 17:19:10 1101

原创 题解:CF2072C Creating Keys for StORages Has Become My Main Skill

枚举一遍然后看看每个数是否符合刚刚我们说的并把符合条件的数保存下来,最后看看最多能到多少。最后,我才发现了一个地方:如果在枚举的过程中已经断开了,那。前置:本篇文章将会讲述作者的辛酸史,易伤感的同学请离开。的最大可以达到多少,这样想其实很简单,只需要从。表示第一个没出现在这个数列中的非负整数)数组的情况,实际上就是让我们求在数列。,所以这道题肯定是 CF 的。,然后一直输出它自己就行了。回归正题:题目要我们求。又完美的 TLE 了……,所以只需要先输出个 ……我还是 TLE 了!终于终于是 AC 了。

2025-04-06 16:30:30 1261

原创 题解:AT_abc241_f [ABC241F] Skate

bfs 只扫这个点的这一行、这一列,我们为什么不能把每一行、每一列的石头所在的列数、行数保存下来呢?但还是有个问题:如果我要跑一行的数据,很有可能会被数据点卡,怎么再优化呢?首先,我们不可能在 bfs 的时候把所有的石头全扫一遍然后找,这样很明显会 TLE。图很大,但是石头不多,那么我们就可以从石头下手。这里需要我们把思维方式转换过来一下。正常的 bfs 是去找路,那我们就找石头!那么我们就需要优化了,从哪儿下手呢?总时间复杂度:最差情况下。

2025-04-05 20:01:17 985

原创 题解:AT_arc050_c [ARC050C] LCM 111

归为一类,那我们就只需要解决后半部分值的问题就行了,后半部分又该怎么做呢?题目意思很简单,我就不过多解释了,我们直接进入正题。先不考虑多的,我们先设定一个函数。这东西也不好求啊,如果我们能把它转化成。到这,整个思路就彻底结束了。个,第二个式子中这样的循环则有。个,因为要有整数个循环,所以。,我们沿用这个思路,如果我们把。组成的数的最小公倍数除以。在上面的证明过程中,我们将。,有没有什么办法可以优化?但这样我们又要算三遍。

2025-04-01 15:28:12 641

原创 题解:CF1659E AND-MEX Walk

一道十分灵活的题(没点脑子真做不出来)。题目简化:经过某一条路径,使得这条路径能到u和v且这条路的mex值最小。其中mex是沿途路径权值两两与运算后没出现的最小的自然数。012假设012都出现过,而有一个大于2的数没出现。那因为2出现过,所以必然有一段数转化为二进制后最后一位与运算后为0,因为0和任何数与运算后都是0,所以1一定在2的前面,而因为有1,所以除了二进制的最后一位,其他的位数都是0,但是2在1后面且2的第二位是1不是0,所以1。

2025-03-29 22:51:56 1231

原创 自然数的和究竟等于多少——颠覆你的常识系列三

卡西米尔效应,其实就是在真空中把两块铁板靠的很近很近,那么这两块铁板之间就会因为量子的涨落而带来一定的斥力,而这个斥力的大小与量子场内的驻波的波节的个数成正比。这个力的大小之间的比值就是驻波的波节的个数。但是物理学家们不管是实际验证还是用其他方法计算,都发现了一个惊人的事实:这个几个力的合力竟然朝里,且大小就是。,也就是所有的自然数之和等于一个定值,且是一个负数,这是咋证明出来的呢?我们会发现它逐渐趋向于一条直线,所以我们可以算出来它的值就是。时,原式就成了自然数的求和,而这个黎曼函数算出来的值就是。

2025-03-22 23:47:36 997

原创 3.22比赛总结

首先恭喜我这次考试终于是考到了全班第一!(呜呜呜太不容易了。)

2025-03-22 22:18:55 676

原创 伯特兰盒子悖论——颠覆你的常识系列二

假设我现在有一个箱子,里面装着10个球,有红球有绿球,我们并不知道这个箱子里有多少个红球、多少个绿球,现在我从箱子里摸出了一个红球,那么请问第二次摸到红球的概率大还是绿球的概率大?

2025-03-22 21:28:16 957

原创 百囚问题——颠覆你的常识系列一

百囚问题”是由丹麦计算机学家 Peter Bro Miltersen 于 2003 年提出的,但关于问题本身,Peter Bro Miltersen 并没有找到解决方法,最终解决方案还是由他的同事 Sven Skyum 找到的,然后他俩还发表了一篇论文《The cell probe complexity of succinct data structures》。感兴趣的同学可以去查一下原文。

2025-03-18 16:39:25 917

原创 题解:P5684 [CSP-J2019 江西] 非回文串

一道很简单的数学题。。。题目简化:给定一个字符串,通过交换顺序使它一个回文串。看上去很简单,用一个大模拟就行了。数据:3≤n≤2000。如果直接用模拟的话,时间复杂度就是On!,最坏情况下是2000!。。这说明了这个字符串中的字符是不会改变的,而题目要求我们求有多少种情况使得这个字符串不是回文串。与回文串相关,立马想到回文串的对称性!所以第一步一定是先统计每个字符出现了多少次(这里建议用map因为回文串具有对称性,所以我们只需要考虑一边,另一边跟这边也就一样了。

2025-03-01 22:35:47 682

原创 2.27学习笔记——关于同余最短路的补充

上面的过程中省略了一些步骤,还用了一些数学符号,但我相信应该能看懂,看不懂的可以抠破脑袋想。当然这就有个问题:这费马小定理有什么用呢?互质的数所构成的集合叫做最简剩余系。这也很好理解,相信大家都能想通,就不多讲了。的最简剩余系的长度,假设一个数。然后我们把左右两边同时除以一个。为质数时,我们就可以得到。互质,则我们可以得到。

2025-02-27 16:48:15 597

原创 2.14比赛总结

题目:定义Cij​Cij​maxij2Ci−1j​Cij−1​ij​​i1∧j1otherwise​求∑i1n​∑j1m​Cij​。答案对1000000007取模。很水的一道题,画几个图表找规律就行,规律自己找。

2025-02-22 17:21:52 840

原创 寒假学习笔记【匠心之作,图文并茂】——1.19树的重心、直径、树形 DP

很简单,我们只需要用一个 dfs,然后从根节点开始往下搜,然后搜它的子树的大小,再把自身的大小加上它子树的大小表示这棵树总的大小,然后取子树大小中的最大值,最后更新答案。(这里以及下文中的「子树」若无特殊说明都是指无根树的子树,即包括「向上」的那棵子树,并且不包括整棵树自身。我们这样思考:假设我现在把根转移给了我的子节点,那么被我转移了的那个子节点的总深度就少了。为根节点往下的总的点数),而其他的子树的总深度就加上了。现在应该就明白了重心的定义了吧。为根的子树大小(即子树上结点的个数,包括根结点)。

2025-02-18 16:44:52 1023

原创 关于斗牛(纸牌游戏)与概率

从斗地主,到打麻将,从五子棋,到国际象棋,人类总是在不断地发明、创造一些方便又简单的游戏,而游戏中往往最特殊的情况我们就认为是概率最小的,然而,当我们从斗牛这个角度,用概率一步一步揭示它时,我们竟惊人的发现:游戏中特殊情况的概率竟比普通的还要大,人类的直觉在这儿不再是追寻答案的方向,而是阻挠我们去揭示真理的绊脚石。说到底,概率这个东西就一定是正确的吗?当数学家伯努利提出概率时,不也是靠着直觉去发现概率的吗?人类的直觉,最终打败了自己……加乘原理。概率计算中的假设法。

2025-02-15 22:36:34 719

原创 2.13比赛总结

再看题目要我们求方案数,求方案数不是组合数学就是 DP,这里一看就不好用组合数学(不信你可以试试),所以肯定用 DP。其实这道题很简单,没什么思维挑战性,就只是把匹配的服务器和用户之间求一下最短路,然后按从小到大的顺序把距离排序再贪心一下就行了,考试时一个地方。很简单的一道题,只需要求出每次中级精彩度降低了多少,然后从小到大排个序就行了,方案数就是个组合数学,但因为精度问题考场上只拿了。既然是 DP,我们就要想想 DP 的定义,一般情况下我们求啥设啥,所以 DP 的定义就是方案数,那我们的数组。

2025-02-15 14:40:10 975

原创 寒假学习笔记【匠心制作,图文并茂】——1.18倍增、ST表与LCA

现在,国土安全局局长希望知道,至少需要多少名边防战士,才能使得他们的奔袭区间覆盖全部的边境线,从而顺利地完成国旗计划。不仅如此,安全局局长还希望知道更详细的信息:对于每一名边防战士,在他必须参加国旗计划的前提下,至少需要多少名边防战士才能覆盖全部边境线,从而顺利地完成国旗计划。我们上面说了,如果相等就不执行操作,也就是不跳,所以我们肯定不会到他们的 LCA,而是会很接近,而最接近的地方就是它的子节点了,所以最后再往上跳一个就行了。最后经过很多次循环后,我们成功找到了他们的 LCA,的子节点,为啥呢?

2025-02-14 23:40:34 870

原创 寒假学习笔记【匠心制作,图文并茂】——1.17图论复习

主要知识点:并查集、 Dijkstra 、查分约束、同余最短路。

2025-02-13 21:06:02 854 2

空空如也

空空如也

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

TA关注的人

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