算法竞赛进阶指南 0x00

Posted ilverene

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法竞赛进阶指南 0x00相关的知识,希望对你有一定的参考价值。

0101a^b

快速幂模板,写一下快速幂的原理。

我们知道,一个数\(n\)在二进制(也可以是其他进制)下可以被表示为\(a_1+a_2*2^1+a_3*2^2+...+a_m*2^m-1\)。那么我们可以考虑将其分拆成二进制状态下的每一位,然后做幂运算。这样做的时间复杂度为\(O(log_2 n)\)

实现的过程类似于倒过来的分治(当然也可以直接分治实现),原理基于以下的式子。

对于k为偶数,\(n^k=(n^2)^k/2\)

对于k为奇数,\(n^k=n*(n^2)^(k-1)/2\)

0102 64位整数乘法

本质上和上一道题一样,注意数据范围即可。

0103 最短Hamilton路径

状压DP。

\(f[i][j]\)表示在经过的点状态为i,当前位置在j上路径长度的最小值。

枚举中转点进行转移即可。

0301 递归实现指数型枚举

dfs,在每个状态都输出一下。

0302 递归/非递归实现组合型枚举

dfs,限制结束长度。

0303 递归实现排列型枚举

dfs。

0304 IncDec Sequence

运用差分数列性质的妙题。

众所周知,差分就是前缀和的逆运算,当相邻两个元素相同的时候,差分数列里对应的一项会变为0,

当我们将某一个区间加上或减去1的时候,差分数列里只有两项变化,所以这就是个结论题了。

统计差分序列里正数之和与负数之和的绝对值(不包括第一项),取最大值就是第一个答案,差的绝对值+1就是第二个答案。

以上是关于算法竞赛进阶指南 0x00的主要内容,如果未能解决你的问题,请参考以下文章

实验13读后感:《算法竞赛进阶指南》

题解|《算法竞赛进阶指南》 Sticks

《算法竞赛进阶指南》图论习题

算法竞赛进阶指南做题记录

算法竞赛进阶指南基本算法:递推与递归

算法竞赛进阶指南基本算法-位运算