随笔分类 - 算法----------
摘要:日常生活中,你會如何描述處理事情的效率? 「原來她五分鐘內可以吃掉一頭牛!」 「房間這麼小你還能擺一堆雜物?還不快收拾!」 這些描述方法,著重在處理事情的花費時間,或單位空間內的儲存量。描述演算法的效率也如此,就是「測量演算法的執行成本」,例如這個排序法花了 10 秒鐘跑完兩萬筆資料,或是這個模擬演
阅读全文
摘要:BackGround 现在的服务基本是分布式,微服务形式的,而且大数据量也导致分库分表的产生,对于水平分表就需要保证表中 id 的全局唯一性。 对于 MySQL 而言,一个表中的主键 id 一般使用自增的方式,但是如果进行水平分表之后,多个表中会生成重复的 id 值。那么如何保证水平分表后的多张表中
阅读全文
摘要:这个算法的正式名字是:“Twelvefold way”,共用12种情况。 本文转载自:自为风月马前卒的博文:浅谈"n个球"和"m个盒子"之间的关系 一、球异,盒同 不空 该情况为经典的第二类斯特灵数 设 表示答案 \(f[n][m] = f[n - 1][m - 1] + m
阅读全文
摘要:悬线法 什么是悬线法? 悬线法是用来解决最大子矩形问题的有力武器,它的思想很简单,代码也很好写。 悬线法的适用范围是单调栈的子集。具体来说,悬线法可以应用于满足以下条件的题目: 需要在扫描序列时维护单调的信息; 可以使用单调栈解决; 不需要在单调栈上二分。 看起来悬线法可以被替代,用处不大,但是悬线
阅读全文
摘要:模拟退火 ,简称 ,最早在 年由 提出,后经优化得到现在广泛应用的算法,应用在很多领域当中。 算法思想 模拟退火是随机化搜索的一种,若随机化搜索写得好,则可以实现高效率和答案的正确率高
阅读全文
摘要:Gosper’s Hack是一种生成 n元集合所有 k元子集的算法,它巧妙地利用了位运算 void GospersHack(int k, int n) { int cur = (1 << k) - 1; int limit = (1 << n); while (cur < limit) { // d
阅读全文
摘要:[原] E.J.Hoffman; J.C.Loessi; R.C.Moore The Johns Hopkins University Applied Physics Laboratory *[译]* EXP 2017-12-29 注意 由于原文使用了“m皇后”进行描述,所以本文从现在开始也使用“m
阅读全文
摘要:「Meissel-Lehmer 算法」是一种能在亚线性时间复杂度内求出 内质数个数的一种算法。 在看素数相关论文时发现了这个算法,论文链接:Here。 算法的细节来自 OI wiki,转载仅作为学习使用。 目前先 mark 一下这个算法,等有空的时候再来研究一下,算法的时间复
阅读全文
摘要:本节部分内容译自博文 Решето Эратосфена 与其英文翻译版 Sieve of Eratosthenes。其中俄文版版权协议为 Public Domain + Leave a Link;英文版版权协议为 CC-BY-SA 4.0。 素数筛法 如果我们想要知道小于等于 有多少个
阅读全文
摘要:Manacher 算法:解决最长回文子串的利器
阅读全文
摘要:因为我们知道乘法有的时候会溢出,即使是 也可能在乘法时因为结果过大溢出(当模数也是 )。所以我们需要寻找一种能高效完成乘法操作并且不会爆 的算法,也就是快速乘。本文也将对几种常用快速乘及其优化技巧做个总结。 1
阅读全文
摘要:首先简单阐述一下递归,分治算法,动态规划,贪心算法这几个东西的区别和联系,心里有个印象就好。 递归是一种编程技巧,一种解决问题的思维方式;分治算法和动态规划很大程度上是递归思想基础上的(虽然实现动态规划大都不是递归了,但是我们要注重过程和思想),解决更具体问题的两类算法思想;贪心算法是动态规划算法的
阅读全文
摘要:我相信大家都有做过寻找和为定值的两个数这道题,但如果转换一下 寻找和为定值的多个数 该怎么办呢? 题目描述 输入两个整数n和sum,从数列1,2,3.......n 中随意取几个数,使其和等于sum,要求将其中所有的可能组合列出来。 分析与解法 解法一 注意到取n,和不取n个区别即可,考虑是否取第n
阅读全文
摘要:背包问题是一类经典的动态规划问题,它非常灵活,需要仔细琢磨体会,本文先对背包问题的几种常见类型作一个总结,给出代码模板。 根据维基百科,背包问题(Knapsack problem)是一种组合优化的NP完全(NP-Complete,NPC)问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价
阅读全文
摘要:题目描述 输入一个由数字组成的字符串,把它转换成整数并输出。例如:输入字符串"123",输出整数123。 给定函数原型int StrToInt(const char *str) ,实现字符串转换成整数的功能,不能使用库函数atoi。 分析与解法 本题考查的实际上就是字符串转换成整数的问题,或者说是要
阅读全文