自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 12.图论1 最短路之dijkstra算法

判定:染色法。

2024-02-11 17:05:47 843 1

原创 4.贪心进阶与经典好题

考虑维护。

2024-02-07 08:27:26 122 1

原创 11.动态规划之状压dp

A simple tasktrick:在计数问题中,如果有多次重复计算同一种情况发生,那么可以钦定只在包含特殊点的情况下计数(如将最小点,最大点作为代表),并将特殊点作为原来导致等效冗余发生的枚举上,可以减少时间复杂度。在枚举一些种类时,思考原来的状态中是否可以直接取一种特殊的点作为一种情况的代表,再利用偏序,从而无需枚举。

2024-02-06 21:01:21 22

原创 10.动态规划算法之树形dp

2023.9.11。

2024-02-06 21:00:36 18

原创 9.动态规划算法之贪心dp

讨论两个元素之前的情况,用这个条件结合两个元素之前的情况,简单推一下不等式可以推出不坏的情况一定满足,或者坏的情况一定不会发生。负数不好处理,我们考虑将所有差分填在正半轴,去掉下界的维度,三维dp列方程时,发现记录上界的一位就是前缀和,不用记录在状态里。时一定不差,因为这时原来不满足的现在可能满足,原来满足的现在一定满足,是严格编号的,这时综合上面两个条件,可以得出。两个方法对应了贪心的两种证法,都值得理解体会,第一种一般是比较简单,因为限定了最优解的情况,排除了很多一般解的讨论。

2024-02-06 20:59:19 11

原创 8.动态规划算法之区间dp

类似的要考虑左右端点情况的还有。

2024-02-06 20:58:29 12

原创 7.动态规划之线性dp

加维度的优化实质上是我们不关心当前最后一个段长度是多少,有哪些情况,我们只关心能不能接上,不能接上是一种情况能接上是一种情况,优化的原理在于加一个维度或者开两个数组把大规模的问题更加细化了(大状态->小状态,小状态知道的信息更多,从而可以实现转移),从而可以完成或优化转移,从而优化了时间复杂度。

2024-02-06 20:57:17 11

原创 6.动态规划算法之背包(树形背包)

这个优化的核心在于确定了某种序可以表示使用该节点的所有转移O(1) 相较于直接dp,定了一种序处理同一层节点,实现了同一层前面的兄弟与该节点的儿子共同考虑的 O(1) 转移法。而上面的dp没有确定序,完全是拆成了多个完全背包,而这种方法将阶段很好的划分以至于能 O(1) 转移。相当于将第j组体积为t,价值为dp_{son[i][j],son[j].size,t} 的物品考虑是否放入背包。dp_{i,j,k}:以i为根的子树考虑前j个儿子(组),容量为k的最大价值。可以看成对于每颗子树做泛化物品的分组背包。

2024-02-06 20:55:11 10

原创 5.动态规划算法之计数dp

这类组合数学一样小球一样盘子的本质上都一样的题是不能用传统的按盘子或者小球划分阶段dp,因为阶段是要按顺序处理的,这里题面要求的是没有顺序关系。注:输出方案不能用二分优化,因为dp数组存的是长度为i的某位最小的值,保证这个值会作为某个末尾,但不保证是前面dp数组组成的序列。为了分更少的类我们一般会考虑包不包含最小的情况,因为更大的情况一定会讨论到小的情况,从而分更多的类,也能做,就是更复杂。给定n个一样的小球,装入m个一样的盘子里,可以有盘子为空,求方案数。另一类是不包含空盘子的方案:dp。

2024-02-06 20:52:05 12

原创 3.贪心算法原理及基础类型题目

贪心的大致类型(不绝对,只是大致的模式和思考方向,有可能一道题的策略同时满足几种类型的特点)二分+贪心最优化问题转判定性问题(一般是求最大的最小值,或者最小的最大值,特点就是直接贪局部不好解决,因为局部不一定影响整体。要求的必要特征就是答案具有单调性,这个要求基本上大部分问题都满足,但是在使用二分答案的时候要证明。),转化成满足类贪心问题。直接贪满足类(问题一般带着比较强的约束需要满足,如装箱,覆盖整个区间,每个点的贡献都相同一般也是满足类(如订单问题每个区间对答案的贡献都是1))。

2024-02-06 20:49:38 11

原创 2.分治算法的适用范围归纳(详细讲解见我的OI入门算法详解)

所以我们想用分治讲O(n^2)的优化成O(nlogn)一定要想出一种较快的(O(nlogn)或O(n)之类的)方法合并分解,否则达不到优化效果。分治算法一般假设两个部分已经处理好,思考的难点在于统计两个部分都在的答案的方法,合并时答案通常为左部分+右部分+公共(公共难想)三要素: 1.子与原形式相同 2.子与子直接相互独立(没有交集) 3.能缩成可以直接求解的小问题。

2024-02-06 20:48:09 13

原创 1.高精度算法与离散化基础技巧(基础)

重载运算符板子,多复习,细节:1.高精除高精有可能被除数比除数多一位,且最多多一位eg.9899/992.乘法一定要写3.构造函数一定要写,结构体不一定初值为04.构造函数只有第一次定义的时候有用,之后再符不同类型的值给高精度数要额外写函数,尽量在定义的时候赋值5.比较函数记得从高位向低位比较6.写构造函数时记得倒序存储7.开数组开到结构体下面8.数字转高精的构造函数特判09.如果高精度位数特别多考虑能否开局部变量(是否爆栈),如果不能要自己赋值。longlong。

2024-02-06 20:46:12 12

原创 OI入门算法详解:含大量优质习题及题解!

优化:维护单调性的除了单调栈还有单调队列,我们可以贪心的想,给一个右端点能和最小的左端点构成的子数组之和>=k那么这个点右边若还有更右的右端点能与最小的匹配肯定没有第一个可以匹配的优,即一个左端点唯一匹配一个右端点,除了这个右端点之外别的右端点跟他匹配都不会成为最优解,因此面对每个右端点每次取队首的若能匹配队首出队更新答案.。这样我们就可以利用单调栈维护一个单调递增的栈,栈中的元素都是合法的左端点,枚举右端点,二分在单调栈中找左端点即可。原理,由于最后计算用的是可相交的性质,所以有以上要求。

2024-02-06 20:06:08 949

原创 史上最系统的的竞赛图讲解:学透竞赛图看这一篇就够了!

任意两点之前有且仅有一条边的有向图。即有向完全图。赢的点连向输的点,一条边表示一个胜负关系。图中每个点经过一次的路径。半哈密顿图:存在哈密顿路径的图哈密顿图:存在哈密顿回路的图。

2024-02-06 19:22:54 1034

原创 【人工智能Alphago背后的秘密】全网最全面的蒙特卡洛树搜索算法讲解:系统、简洁、易懂!

既然已经不是真的通过「模拟」的出赢的次数和已经评估的次数,那么我们之前通过 UCT 值的大小来向下搜索、选择一个未访问的叶子节点的方法也需要作出相应修改。active:自己之前被评估过至少一次,下一步所有可能的决策能到的点中存在born的点(从来没有被评估过的)。(为了保证估价相同的随机进行,可以先随机打乱。一开始,评估次数较少的时候胜率对选择一个结点的影响不那么大,随着评估次数的增加,胜率的影响越来越大。die:自己被评估过,在下一步所有可能的决策能到的点不存在born的点(从来没被评估过的)。

2024-02-06 19:10:12 1452

个人代码细节错误总结123456789

个人代码细节错误总结123456789

2024-03-02

Haoba's考前提醒

Haoba's考前提醒

2024-03-02

空空如也

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

TA关注的人

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