<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ResCells的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ResCells</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ResCells]]></copyright><item><title><![CDATA[CLion中CMake编译调试单个CPP实例的方法(算法竞赛必备)]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/143201367</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/143201367</guid><author>ResCells</author><pubDate>Thu, 24 Oct 2024 10:58:05 +0800</pubDate><description><![CDATA[好吧其实都不用配置了,只需要每次新建一个.cpp文件的时候。]]></description><category></category></item><item><title><![CDATA[动态规划之背包才是万恶之源(CF E. K Balanced Teams)]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/143069381</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/143069381</guid><author>ResCells</author><pubDate>Sat, 19 Oct 2024 11:27:01 +0800</pubDate><description><![CDATA[个物品放入前面一个组里面,只有这两种情况需要考虑,满足了不漏的原则(因为如果放入的话极差可能会变化,可能需要新的一个组,导致最终的人数减少);接下来我们来看看这道题是如何转化成01背包的思考方式的;有了这个dp数组的定义之后,我们就可以考虑怎么转移了:在01背包中,我们考虑转移是从是否把第。对于01背包我们是怎么设计dp数组的呢–>dp[i, j]:表示只考虑前i个物品,物品总体积。就因为这个不超过,很容易联想到背包问题的思考方式;个物品放入背包中,那么在这道题,其实也可以用类似的方式考虑,即是否把第。]]></description><category></category></item><item><title><![CDATA[P4310 绝世好题(带位运算的DP)题解]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/143064798</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/143064798</guid><author>ResCells</author><pubDate>Sat, 19 Oct 2024 00:48:54 +0800</pubDate><description><![CDATA[这个时候,我们还要再进行一步操作,把所有位上位1的数更新成k,为什么呢?是否满足条件的所有子序列的集合,其中数组存储的值就是子序列长度的。的数字,那么dp数组可以设计成二维的。,那么就可以接上前面的同样该位为。那么我们该如何考虑转移呢?为1,那么他一定可以接上前面的第。但是我们最终不只是仅仅考虑第。个数字结尾,并且只考虑。位同样为1的数字,所以。]]></description><category></category></item><item><title><![CDATA[动态规划之合唱队形]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/142834793</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/142834793</guid><author>ResCells</author><pubDate>Fri, 11 Oct 2024 00:09:33 +0800</pubDate><description><![CDATA[其实这道题和最长上升子序列和导弹拦截这类题目都有一个共同点:就是要求一个最长的单调序列,这个序列可能是严格单调也可能不是,但最后都是单调,所以最后可以转化成一道线性dp的模版题–>最长上升子序列,就是两个循环嵌套就解决了;]]></description><category></category></item><item><title><![CDATA[01背包变种之完全装满问题]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/142780999</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/142780999</guid><author>ResCells</author><pubDate>Wed, 09 Oct 2024 11:08:41 +0800</pubDate><description><![CDATA[这里有一种很巧妙的处理方式,即把不能刚好填满背包的值赋为-INF(即标记为无效的状态),例如dp[1][0] = 0而不是-INF,因为其确实填满了背包;这样处理过后,我们只需要判断。是否大于0即可判断是否能填满背包并且得到能填满背包所有价值的最大值了;那如果把条件换成:求背包刚好装满的时候的最大值,阁下又该如何应对;是有效的,说明背包能恰好背装满且有最大值;关于01背包,其实就很简单了,可以看看我的另一篇文章。综上所述,当求出来所有的状态之后,若。]]></description><category></category></item><item><title><![CDATA[模运算的一些性质]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/142753675</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/142753675</guid><author>ResCells</author><pubDate>Tue, 08 Oct 2024 11:07:21 +0800</pubDate><description><![CDATA[今天无聊刷水题的时候发现自己对于模运算的一些性质知之甚少,故写了这篇文章来总结一下一些模运算的定理和性质;水题;这道题如果用暴力+前缀和解法是这样的(会TLE):
但是其实这道题用到了一个性质:,反过来同理;那怎么用这一个性质呢? 我们可以找第一个模等于k和最后一个模等于k的数,两个数的下标相减就是最长的区间啦 ;完整代码如下(有注释):
一些开箱即用的性质


(减法就是加一个数的相反数,和加法基本相同,不做赘述)




这些性质的证明基本上遵循以下方法:
令 a = p * k1 + r1, b = ]]></description><category></category></item><item><title><![CDATA[最长上升子序列解法及其优化]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/142748191</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/142748191</guid><author>ResCells</author><pubDate>Mon, 07 Oct 2024 23:18:46 +0800</pubDate><description><![CDATA[那为什么这张图是单调上升(即q[i, j] > q[i - 1, j])的呢,别急,这里给出证明:若q[i] ]]></description><category></category></item><item><title><![CDATA[二分答案耶~]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/142645000</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/142645000</guid><author>ResCells</author><pubDate>Sun, 06 Oct 2024 15:58:49 +0800</pubDate><description><![CDATA[当我们不太容易找到一个答案,但是能比较容易判断一个答案是否正确的时候,我们会想到怎么去解决只一个问题呢?,因为x成立的话x+1也一定成立(类似这种的);,例如这道题的check函数–>代表了答案具有。二分查找想必大家一定都不陌生吧,二分答案的一个显著特征是比较容易。但是根据题目所给的条件,会发现。二分答案的另一个显著特征就是。]]></description><category></category></item><item><title><![CDATA[完全背包问题代码细节]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/142673590</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/142673590</guid><author>ResCells</author><pubDate>Wed, 02 Oct 2024 10:43:16 +0800</pubDate><description><![CDATA[其实完全背包问题可以看成是每个物品都有k个的01背包问题,这样就有了朴素的完全背包问题的做法;想必到这里读者应该可以明白为什么了吧:每次都把最大值赋给f[i][j],这样最后得到的结果就和表达式相同了;这里的降维优化其实和01背包的是一个东西,都是利用滚动数组的特性,但是和01背包的又有一点不太一样;的时候,及时就相当于01背包的这一行代码了,然后再不断地和。–>为什么01背包有一个。发现多重背包就可以从正面枚举到后面,比较大小,这样就实现了上述表达式;其实是这样的:当完全背包的。是从后面往前面枚举的,]]></description><category></category></item><item><title><![CDATA[分层图详解(不那么详细但是好理解的详解AWA)]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/142622812</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/142622812</guid><author>ResCells</author><pubDate>Sat, 28 Sep 2024 22:31:15 +0800</pubDate><description><![CDATA[一般我们看到在最短路中,有k条边的边权可以变化(变成0或是变成w/2基本可以大概确定是分层图的做法了),其实分层图和最短路本质上是一样的,只是在不同层之间连接了一条边,并且根据题目的条件进行转移罢了;]]></description><category></category></item><item><title><![CDATA[一个各种常用但是容易忘记的模版的文章(持续更新)]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/142590861</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/142590861</guid><author>ResCells</author><pubDate>Fri, 27 Sep 2024 13:02:01 +0800</pubDate><description><![CDATA[一个判断是否为质数的模版(老是忘记QAQ)]]></description><category></category></item><item><title><![CDATA[E. Rendez-vous de Marian et Robin题解]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/142536484</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/142536484</guid><author>ResCells</author><pubDate>Thu, 26 Sep 2024 10:54:01 +0800</pubDate><description><![CDATA[这篇文章提供了一个比隔壁某天ye更简单的思路和更好理解的代码(bushi);]]></description><category></category></item><item><title><![CDATA[D. Robert Hood and Mrs Hood题解]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/142449788</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/142449788</guid><author>ResCells</author><pubDate>Mon, 23 Sep 2024 10:04:18 +0800</pubDate><description><![CDATA[当我满心欢喜的提交代码的时候~Time limit exceeded on test 3 ~,来分析下为什么:每次我们在找到一个新的左区间端点x的时候都需要重新遍历来计算一次一共有几个区间和[x,x+d-1]有交集;内所有可能起始日,并找出满足需求的起始日(即和brother的重合数最多,和mother重合时间最少);与几个区间有交集呢,这里提供了一个思路:==>一开始我的想法就是枚举每一个可能的左区间。根据题目的意思,我们是需要检查在范围。,并且计算以该点为左区间的整个区间。]]></description><category></category></item><item><title><![CDATA[关于OpenGL利用VBO绘制以及VBO和VAO的关系]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/126475322</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/126475322</guid><author>ResCells</author><pubDate>Tue, 23 Aug 2022 21:25:56 +0800</pubDate><description><![CDATA[VBO和VAO是OpenGL中非常重要的概念，这里先解释一下是什么意思：顶点数组对象：Vertex Array Object，VAO顶点缓冲对象：Vertex Buffer Object，VBO初学者很容易弄错两者的关系刚开始我也弄错了QAQ。]]></description><category></category></item><item><title><![CDATA[关于Visual Studio C++相对路径的问题]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/126474209</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/126474209</guid><author>ResCells</author><pubDate>Mon, 22 Aug 2022 21:40:02 +0800</pubDate><description><![CDATA[关于Visual Studio C++相对路径的问题。]]></description><category></category></item><item><title><![CDATA[线段树详解（AWA）]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/126436063</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/126436063</guid><author>ResCells</author><pubDate>Sat, 20 Aug 2022 11:11:42 +0800</pubDate><description><![CDATA[这里我稍微的解释一下，这里每次扫描，只要扫描到左右区间能完全覆盖到的地方，就可以直接返回了，剩下了很多的不必要的计算，再在查询的时候直接更新，再加上就好。（注意：这里的每个区间都是左封闭右开放）根节点的两个子节点就是自己二分的结果，通过不断的二分，构造出这样一棵树，我们就叫他。线段树，顾名思义，就是一棵树，所以对树的操作线段树也不能少。构建树的过程也是相当简单QAQ，因为树是由递归定义的，所以我们只需要稍微搞个递归就好啦~，确实是个好用的工具，但是！有了修改，那么自然要有查询的操作，查询也很简单（）。...]]></description><category></category></item><item><title><![CDATA[离散化思想详解]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/126379435</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/126379435</guid><author>ResCells</author><pubDate>Wed, 17 Aug 2022 14:54:15 +0800</pubDate><description><![CDATA[当有效数据量可控，但数值落在的数值空间非常大的时候，离散化思想就可以派上用场了。经过时间和空间的优化，这道题的时间成本就可以降到可以接受的程度，而这种优化思想，就叫做离散化思想。离散化，就是把无限空间中有限的个体映射到有限的空间中去，以提高算法的时空效率。很多算法的复杂度与数据中的最大值有关，比如用数组实现的一对一标记。数据的范围非常大或者其中含有负数，但数据本身的个数并不是很多（远小于数据范围）。在这种情况下，如果每个数据元素的具体值并不重要，重要的是他们之间的大小关系的话。.........]]></description><category></category></item><item><title><![CDATA[动态规划----背包问题（完全背包问题）]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/126348465</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/126348465</guid><author>ResCells</author><pubDate>Mon, 15 Aug 2022 16:58:52 +0800</pubDate><description><![CDATA[有N种物品和一个容量为V 的背包，每种物品都有无限件可用。放入第i种物品的耗费的空间是Ci，得到的价值是Wi。求解：将哪些物品装入背包，可使这些物品的耗费的空间总和不超过背包容量，且价值总和最大。...]]></description><category></category></item><item><title><![CDATA[动态规划----背包问题（01背包问题）]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/126343316</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/126343316</guid><author>ResCells</author><pubDate>Mon, 15 Aug 2022 11:35:36 +0800</pubDate><description><![CDATA[辰辰是个天资聪颖的孩子，他的梦想是成为世界上最伟大的医师。医师为了判断他的资质，给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说：“孩子，这个山洞里有一些不同的草药，采每一株都需要一些时间，每一株也有它自身的价值。我会给你一段时间，在这段时间里，你可以采到一些草药。如果你是一个聪明的孩子，你应该可以让采到的草药的总价值最大。其实理解了以后就很简单，这里通过列表的方法来帮助理解AWA。）的整数，分别表示采摘某株草药的时间和这株草药的价值。输出在规定的时间内可以采到的草药的最大总价值。.......]]></description><category></category></item><item><title><![CDATA[题目：扩展二叉树（树的基本操作）]]></title><link>https://blog.youkuaiyun.com/ResCells/article/details/126299683</link><guid>https://blog.youkuaiyun.com/ResCells/article/details/126299683</guid><author>ResCells</author><pubDate>Fri, 12 Aug 2022 11:03:38 +0800</pubDate><description><![CDATA[由于先序、中序和后序序列中的任一个都不能唯一确定一棵二叉树，所以对二叉树做如下处理，将二叉树的空结点用·补齐，如图所示。我们把这样处理后的二叉树称为原二叉树的扩展二叉树，扩展二叉树的先序和后序序列能唯一确定其二叉树。现给出扩展二叉树的先序序列，要求输出其中序和后序序列。这一题其实考的就是对树的相关操作，这里来简单的归纳一下。提示就是没有提示AWA。...]]></description><category></category></item></channel></rss>