摘要:
在上一篇文章中,我们已经熟知了有关公约数和欧几里得算法的相关事宜。详情参见:欧几里得算法求最大公约数。本文将作为上篇文章内容的一个延续,简要阐述拓展欧几里得算法和中国剩余定理。 拓展欧几里得算法 拓展欧几里得算法(Extended Euclidian Algorithm),是欧几里得算法的扩展版本, 阅读全文
摘要:
最大公约数 所为的最大公约数,是指两个或多个整数共有的约数中最大的那个数。换句话说,它是能同时整除给定的整数的最大整数。 例如,对于整数 和 ,它们的公约数有 ,其中最大的公约数为6,因此它们的最大公约数为 。最大公约数通常用符号 \(\gc 阅读全文
摘要:
什么是快速幂,为什么要使用快速幂? Macw: 快速幂有好多好处。 Penelope: 例如? Macw: 它比较快。 见名知意,快速幂算法可以在非常短的时间内求出一个数的 次幂。虽然快速幂在初学阶段的应用不算太多,但是快速幂背后的思想是非常值得我们去理解的。 举例而言,如果我们要求出 阅读全文
摘要:
题目大意,给定在平面直角坐标系中的多个点,判断有多少个三元组 满足共线性质。 题目链接:A566.三点共线。 大题思路就是暴力所有的三元组,判断三个元素的斜率是否相同即可。其实还有其他方法可以做,我个人感觉用斜率法最简单。 有几点需要注意: 在计算斜率的时候,如果多个点处 阅读全文
摘要:
为什么要写题解? 首先要清楚知道一点,写题解不仅是帮助别人在做题遇到困难时指明方向,更是提升自己的最快途径。经常有人问我:“如何提升自己的程序设计能力”。我都会回答:“写题解”。 写题解可以帮助你彻底掌握某一个知识点。无论一道题目是否是你独立写出来的,你都应该去尝试写题解。对于许多人来说,他们往往在 阅读全文
摘要:
题目链接:眼红的同学 题干信息很简单,看到数据量之后就不简单了。在数据量小的时候可以使用双层循环暴力的方法来求答案。显然对于这道题而言O(n^2)是完全过不去的。 前置知识: 使用树状数组求逆序对 会归并排序等分治算法。 如果想要了解跟多信息,可以自行在搜索引擎搜索有关CDQ分治的练习题。 考虑使用 阅读全文
摘要:
题目跳转 思路: 题目问最多可以获得的额外伤害,其实就是询问在这些技能中,如何怎样选取一个最优的发动技能顺序使得攻击加成最大。我们可以把每一个技能看作成一个图的顶点,把每一个攻击加成看作图的边,权制为 。由于 与 相等,则可以将这个图视为无向图。 可以样样例 阅读全文
摘要:
题目跳转 思路:这道题可能跟博弈论有一点关系,没有学习过博弈论做起来应该问题也不大。思考一个问题,先手必胜的前提是什么? 有关更多的内容可以前往:浅谈有向无环图 先手必胜的前提是,在任何一种局面下,先手都有至少一种操作可以使后手处于必败的局面。 若先手进行任何操作后,后手都可以选择必胜的操作,则先手 阅读全文
摘要:
题目跳转 思路:本题可以使用动态规划或递归的方式来实现,本质上是一道01背包的变型题。假设一共有 名员工,每一位员工的技能水平用 表示。要使得两个部门的员工技能总和之差最小,意思就是尽可能地将一个部门的技能之和”凑“到\(\sum\limits_{i=1}^{n}a[i] \t 阅读全文