会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
逃往火星的猫
做人走人路,撞鬼踏鬼途,我也该趟趟ACM的道了
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
下一页
2018年9月5日
树状数组
摘要: 处理何种问题:常用于动态更新情况下的求区间和,LIS里的求最大值也用到了树状数组。 时间复杂度:单次更新和求和的时间复杂度都是O(logn) 原理:lowbit()函数是整个树状数组的核心,但是在这里我就不说他的理论基础了,只说一下它的功能,例如:给一个原始数组A[]:1,2,3,4,5,6,7,8
阅读全文
posted @ 2018-09-05 17:07 逃往火星的猫
阅读(117)
评论(0)
推荐(0)
2018年9月4日
马拉车算法
摘要: 处理何种问题:给定一个字符串,求出其最长回文子串的长度。 性能:虽然代码有两层循环,但是内层循环跑的次数之和为n,所以时间复杂度为O(n)。 原理:由于回文分为偶回文(比如 bccb)和奇回文(比如 bcacb),而在处理奇偶问题上会比较繁琐,所以这里我们使用一个技巧,具体做法是:在字符串首尾,及各
阅读全文
posted @ 2018-09-04 20:51 逃往火星的猫
阅读(168)
评论(0)
推荐(0)
唯一分解定理
摘要: 处理何种问题:对于任何一个大于1的自然数num,num可以唯一分解为有限个质数乘积,如:num=的形式。(补充:这里的唯一的意思是在不考虑排列顺序的情况下) 性能:时间复杂度为O(sqrt(num)) 原理:唯一分解定理 实现步骤:类似于素数筛的求素数方法。 备注:当数据量大时建议先用素数筛把素数都
阅读全文
posted @ 2018-09-04 20:27 逃往火星的猫
阅读(451)
评论(0)
推荐(0)
2018年8月30日
LIS——最长上升子序列
摘要: 处理何种问题:已知一个原序列,求出其最长的一个子序列,且该子序列是单调递增的。(对于其子序列的要求条件是,可以不连续,但是先后顺序不可改变) 性能:普通DP为O(n^2),贪心+二分为O(n*logn),DP+树状数组O(n*logn)。 原理: 贪心+二分解释不出原理,网上的资料个人感觉不是很有说
阅读全文
posted @ 2018-08-30 20:40 逃往火星的猫
阅读(215)
评论(0)
推荐(0)
2018年8月21日
皮克定理
摘要: 处理何种问题:给定顶点坐标均是整点的任意多边形, S(面积) = a(内部格点数目) + b(边上格点数目)/2 - 1 。 如图所示: S=14.50 a=11 b=9(最上方的边内有一整数点) 性能:时间复杂度为 O(n)。 原理:皮克定理我在这里就不贴证明资料了。对于多边形面积的求法用的是叉积
阅读全文
posted @ 2018-08-21 20:57 逃往火星的猫
阅读(1479)
评论(0)
推荐(0)
2018年8月18日
多重背包
摘要: 处理何种问题:给定n种物品和一个容量为V的背包,物品i的体积为vi,其价值为pi,以及数量numi,求其最终可以装进背包的物品最大价值。 性能:时间复杂度为O(nV) 原理:客观上来说,可以将其直接看做01背包(只不过相同的物品很多),但会因为物品数量太多造成超时。针对这个问题,我没将物品数量进行分
阅读全文
posted @ 2018-08-18 21:05 逃往火星的猫
阅读(125)
评论(0)
推荐(0)
叉积求多边形面积
摘要: 处理何种问题:面对一个多边形,求其面积,对于多边形无限制条件,但是对于构成多边形的点必须是逆时针顺序给出。 性能:在点已呈现逆时针顺序的情况下,时间复杂度为O(n)。 原理: //点的记录必须要逆时针顺序 所记录的面积是有向面积 实现步骤:略 备注:对于叉乘求面积,适用凸边形和凹边形,只要构成边是逆
阅读全文
posted @ 2018-08-18 16:57 逃往火星的猫
阅读(234)
评论(0)
推荐(0)
2018年8月17日
完全背包
摘要: 处理何种问题:给定 n 种物品(每种类型无限)和一个容量为 V 的背包,物品 i 的体积为 vi,其价 值为 pi,求其最终可以装进背包的物品最大价值。 性能:时间复杂度为O(nV)。 原理:在学习背包之前,可能是思考方向的不对的原因,导致对背包题解的做法有些误解,现在借着写完全背包我在这里阐述一下
阅读全文
posted @ 2018-08-17 20:49 逃往火星的猫
阅读(148)
评论(0)
推荐(0)
威佐夫博弈
摘要: 处理何种问题:有两堆各若干的物品,两人轮流从中取至少一件物品,至多不限,或从两堆中取相同件物品,规定最后取完者胜利。 性能:博弈题,有规律,O(1)的时间复杂度。 原理: 先说结论:若两堆物品的初始值为 (x,y) ,且x<y,则另z=y-x; 记w= ; 若w=x,则先手必败,否则先手必胜。 推论
阅读全文
posted @ 2018-08-17 14:16 逃往火星的猫
阅读(157)
评论(0)
推荐(0)
2018年8月16日
尼姆博弈
摘要: 处理何种问题:有n堆物品,每堆物品数为 arr[i] ,双方轮流从中取物品,每次只能从一堆物品中取任意件物品,最少取一件,取到最后一件物品的人获胜,求谁最后获胜。 性能:因为是有公式,所以时间复杂度为O(n)。 原理:结论:把每堆物品数全部都异或起来,如果得到的值为0,那么先手必败,否则先手必胜。
阅读全文
posted @ 2018-08-16 16:59 逃往火星的猫
阅读(238)
评论(0)
推荐(0)
上一页
1
2
3
4
5
下一页
公告