随笔分类 - 模板
摘要:欧几里得算法 欧几里得算法(也称辗转相除法)是目前已知求最大公约数的最快通用算法,具有代码复杂度低、易理解、用途广等诸多优点,也是OI中不可或缺的的一种算法。(当然更相减损术也是) 若有两个数a和b,需要求a和b的最大公约数,怎么办? 枚举它们的因子? 小数据可以,大数据的话,这个O(n)的算法就图
阅读全文
摘要:问题描述: 输入一个字符串,求出其中最大的回文子串。子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看相同,如abba和yyxyy。 算法基本要点: 首先用一个非常巧妙的方式,将所有可能的奇数/偶数长度的回文子串都转换成了奇数长度:在每个字符的两边都插入一个特殊的符号。 比如
阅读全文
摘要:一、巴什博弈(Bash Game) Describe:只有一堆n个物品,两个人从轮流中取出(1~m)个;最后取光者胜。 考虑到 若n=m+1 那么 第一个人不论如何取都不能取胜。 进一步我们发现 若 n=k*(m+1)+r; 先取者拿走 r 个,那么后者再拿(1~m)个 n=(k-1)*(m+1)+
阅读全文
摘要:一、简介线段树 ps: _此处以询问区间和为例。实际上线段树可以处理很多符合结合律的操作。 (比如说加法,a[1]+a[2]+a[3]+a[4]=(a[1]+a[2])+(a[3]+a[4])) 线段树之所以称为“树”,是因为其具有树的结构特性。 线段树由于本身是专门用来处理区间问题的(包括RMQ、
阅读全文

浙公网安备 33010602011771号