自定义博客皮肤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)
  • 收藏
  • 关注

原创 刷题笔记(总)

某收费有线电视网计划转播一场重要的足球比赛。他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树的内部节点。从转播站到转播站以及从转播站到所有用户终端的信号传输费用都是已知的,一场转播的总费用等于传输信号的费用总和。现在每个用户都准备了一笔费用想观看这场精彩的足球比赛,有线电视网有权决定给哪些用户提供信号而不给哪些用户提供信号。写一个程序找出一个方案使得有线电视网在不亏本的情况下使观看转播的用户尽可能多。

2024-09-14 18:27:34 660

原创 算法笔记:杂项(总)

用于动态维护一段区间内的最值最值一般放在队首,每次插入新元素从队尾插入(双向队列)

2024-09-13 17:19:58 300

原创 数论(总)

则可推导上一次调用时的x,y:g=x*b[n-1]+y*((a[n-1]-(a[n-1]/b[n-1])*b[n-1])(a[n]对应b[n-1],b[n]对应(a[n-1]/b[n-1])*b[n-1],即a%b)1.a,b最大公约数的另一种理解方法是:找到一组整数x,y使 ax+by 得到最小正数解。2.假如方程 ax+by=c 有整数解,则c一定是gcd(a,b)的倍数。设g为最大公约数,gcd调用时,第k次输入的参数为a[k],b[k];在最后一次调用中,g=x*a[n]+y*b[n]。

2024-09-03 21:01:25 183

原创 算法笔记——字符串哈希

字符串哈希,即得到一个字符串的哈希值。最常见的字符串哈希函数:将字符串转化为特定进制数并自然溢出,一般进制数最好是>300的质数。转化时每位从1开始,假设一个字符串只有小写字符和数字组成(a~z->1~26,0~9->27~37)。哈希碰撞(不同字符的哈希值相同)理论上是会发生的,但是概率很低,忽略不计。

2024-08-04 15:30:34 223

原创 算法笔记:ST表与倍增算法

利用转移方程式构建完ST表后,当求区间(l,r),设步长为step,从l开始,先另step选取最大步长,如果当前跳跃步数到达的位置不超过r(ST[cur][step]<r),就记录一下。注意红字,这是能使用ST表的必要条件,意思是越靠前的点,能跳到的位置一定越靠前(也可以理解为,没有一个区间是完全包含另一个去区间的(最差情况是区间的左端点或右端点重合))。ST表:ST[l][p],代表区间(l,l+2^p-1)上维护的信息,l代表区间左端点,p代表区间长度。也就是说,当满足一定的单调性,才能使用ST表。

2024-07-15 16:09:09 179

原创 算法笔记:线段树(总)

一些注意事项:1.线段树是一种基于二分思想的数据结构,因此几乎所有相关操作都默认有一个前提:目标一定在当前查询的区间内,不需要考虑目标不在当前区间内的可能性。

2024-06-22 21:03:16 195

原创 算法笔记:高级搜索

要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为 123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。对于无法用动态规划、搜索剪枝,同时暴搜超时的题目,可以尝试双向搜索,即开始状态和终止状态同时开始搜索,如果达到一个相同的状态说明搜索完成。相当将一颗搜索树变成两颗,如果两颗搜索树的某个节点(状态)相遇(状态相同),说明搜索结束。第二行,N 个以空格分隔的正整数,均不超过 10^16,代表每场比赛门票的价格。输出一行,表示方案的个数。

2024-06-21 11:23:36 252

原创 算法笔记:最大矩形面积

最大子矩形问题:在一个给定的矩形中有一些障碍点,要找出网格内部不包含任何障碍点,且边界与坐标轴平行的最大子矩形。常用的算法有两个:单调栈,时间复杂度O(n*m)(原文没有提如何解决忽略了左边界与整个举行的左边界重合,而右边界覆盖了一个障碍点的情况,实际解决方法是从左到右、从右到左各搜一遍)

2024-06-19 19:38:45 387

原创 算法笔记:KMP问题

next数组:对str2,每位字符前面的字符串(不包含这个字符),前缀和后缀的最大匹配数量(不含整体),我们把这个前缀后缀相同的字符串称为border(之后简称next数组表示的前缀字符串为border前缀,next数组表示的后缀为border后缀)。2.由于border前缀==border后缀,因此str1和str2都再跳border长度的字符,即str1从(i+j-next[j]+next[j]),也就是(i+j)开始,因此str1其实没有动;KMP本质就是用next数组,对匹配过程做了一个加速。

2024-06-08 20:49:31 127

原创 算法笔记:博弈问题

先找到XOR最高位1(即前面的所有位都为0),找所有堆数量的二进制位包含这位1(至少有一个,因为是奇数),将除这个数的其余均XOR,结果一定<这个数(设该位1为第x位,那么XOR结果前x位都为0,而这个数第x位为1),因此通过调整这个数,可以使得(这个数)XOR(其余数XOR结果)==0。=0,那么我一定可以通过玩一个小ICG游戏,使得总XOR值==0,即将敌方掉入必输局面(XOR==0,即SG总(x)== 0)。还是有必败点SG(0)== 0,设SG(x)== 0,表示当前局面必败;

2024-06-06 22:07:45 355

原创 算法笔记:树状数组

正常树状数组:范围查询,单点修改。差分树状数组:范围修改,单点查询。加上类似倍增的思想,相当于。每个元素用二进制表示,

2024-05-19 11:44:39 132

原创 算法笔记:二分&&三分(总)

二分思想本质是:1.用于求出可行解的最值问题。2.实现是逐次逼近的思想。最典型的,有序数组的二分查找就是最简单的应用之一。在有序数组中找到第k大的数,第k大的数就是可行解的最值,第k+1,k-1大的数其实也算是可行解,但不是最优解。在精度要求固定的情况下,二分是一定可以找到最优解的。可二分问题的结构:1.求解最值2.可行解数量众多,如果把可行解从左到右排序(排序标准按照问题要求),最右边的可行解就是最优解。当遇到求解最值问题,且贪心、dp等方法均不可用时,可以尝试二分。

2024-05-18 12:19:44 220

原创 图论:树(总)

1.树是特殊的图,是连通、无环、无向图。2.树顶点数为n,边数为n-1。

2024-05-16 20:40:16 138

原创 个人反思总结&&tips

而且时间复杂度是可以经过一些比较偏的优化方法(可能要涉及数学的期望推导)直接暴力通过的,或者暴力本身就是可以直接过的。在某些对连续性要求严格的情况下(比如算面积,洛谷-Overplanting S),这种粘连问题导致错误(算面积时多算,因为两个本来分离的数在离散数组中连续了)解决方法:离散数组中假如两个数之差>1(即两个数原本是分离的),就在两个数中间中随便插入一个数(一般都直接插前一个数+1)如 6,8 在原本是分离的两个数,但是在离散化数组中可能是连续的。1.离散化带来的“粘连问题”

2024-05-15 20:27:31 96

原创 算法笔记:DP(总)

1.基于左右两端点的可能性讨论。2.基于区间划分点的可能性讨论。时间复杂度一般为O(n^2)时间复杂度一般为O(n^3)

2024-04-27 10:41:03 101

空空如也

空空如也

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

TA关注的人

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