文章分类 - ACM
------------------------------------------------------------------------------
摘要:矩阵快速幂是建立在快速幂基础上的。 其实就是快速幂的底数变成了矩阵 快速幂算法我就不多说了,下面是矩阵快速幂的解释。 这个是快速幂+快速幂取模的模板,结构体的重载乘号 解释其实也没什么可以解释的。。就是快速幂从数变成了矩阵,初始化的时候用的是单位矩阵 下面给一个例题 hdu 1575 下面是矩阵快速
阅读全文
摘要:LCA,也就是最近公共祖先。 一般有三种写法。 树上倍增LCA,先序DFS(欧拉序)+RMQ(ST表),DFS序+并查集。 一、树上倍增 首先是树上倍增LCA 注意这里N = ceil(n) 也就是n个点向下取整。 首先初始化father数组 这里father数组代表的意思是father[i][j]
阅读全文
摘要:树状数组,又称二叉索引树。 一般解决动态连续和查询问题。 也就是说, 给定一个含有n个元素的数组A,要求你设计一个数据结构,支持2个操作: 1.Add(x, d),也就是让第x个元素Ax增加d 2.Query(L, R)也就是计算AL + AL+1 + ...+AR 我们知道,在数据量很大的情况下,
阅读全文
摘要:01背包问题概论: 给定n种物品和一个容量为V的背包,物品的体积为vi,其价值为vali。 问:应该如何装入背包的物品才能使装入背包物品的总价值最大? 策略: 这种问题有两种决策,拿与不拿,以代码的形式可化为: 其中未知量代表: n -- 物品个数,vi -- 物品的体积,dpi -- 总价值,v
阅读全文
摘要:首先是最大公约数,这有2种写法,一个是省事一点地递归写法: 原理其实很简单,就是模拟辗转相除法首先算法若a < b, 算法会转换一下a 和 b, 然后对他们取余数, 并用较小的数再次求余,直到余数为0, 最小的数就是最大公约数! 数学也可以用来推倒: nx % x == 0 时 x 为最大公约数。
阅读全文
摘要:运用了位运算一般代码很简单。 这里要清楚的一点是&运算符: 1&1 = 1, 1&0 = 0, 0&1 = 0, 0&0 = 1; 先上一段代码,很简单,不理解可以直接记模板: 其中i =31; i >= 0; i--表示二位数为000000000000000000000000000000(32位)
阅读全文

浙公网安备 33010602011771号