随笔分类 - 算法
摘要:链接: https://www.acwing.com/problem/content/123/ 题意: 农夫约翰希望为他的奶牛们建立一个畜栏。 这些挑剔的畜生要求畜栏必须是正方形的,而且至少要包含C单位的三叶草,来当做它们的下午茶。 畜栏的边缘必须与X,Y轴平行。 约翰的土地里一共包含N单位的三叶草
阅读全文
摘要:链接: https://www.acwing.com/problem/content/122/ 题意: 达达学习数学竞赛的时候受尽了同仁们的鄙视,终于有一天......受尽屈辱的达达黑化成为了黑暗英雄怪兽达达。 就如同中二漫画的情节一样,怪兽达达打算毁掉这个世界。 数学竞赛界的精英 lqr 打算阻止
阅读全文
摘要:链接: https://www.acwing.com/problem/content/121/ 题意: 在与联盟的战斗中屡战屡败后,帝国撤退到了最后一个据点。 依靠其强大的防御系统,帝国击退了联盟的六波猛烈进攻。 经过几天的苦思冥想,联盟将军亚瑟终于注意到帝国防御系统唯一的弱点就是能源供应。 该系统
阅读全文
摘要:链接: https://www.acwing.com/problem/content/description/118/ 题意: “飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱。 已知每个把手可以处于以下两种状态之一:打开或关闭。 只有当所有把手都打开时,冰箱才会打开。 把手可以表
阅读全文
摘要:链接: https://www.acwing.com/problem/content/104/ 题意: 农夫约翰的农场由 N 块田地组成,每块地里都有一定数量的牛,其数量不会少于1头,也不会超过2000头。 约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到
阅读全文
摘要:链接: https://www.acwing.com/problem/content/103/ 题意: 有 N 头牛站成一行,被编队为1、2、3…N,每头牛的身高都为整数。 当且仅当两头牛中间的牛身高都比它们矮时,两头牛方可看到对方。 现在,我们只知道其中最高的牛是第 P 头,它的身高是 H ,剩余
阅读全文
摘要:链接: https://www.acwing.com/problem/content/102/ 题意: 给定一个长度为 n 的数列 a1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。 求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的
阅读全文
摘要:链接: https://www.acwing.com/problem/content/description/100/ 题意: 城市的规划在城市建设中是个大问题。 不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的问题就开始显现。 而这座名为 Fractal 的城市设想
阅读全文
摘要:链接: https://www.acwing.com/problem/content/99/ 题意: 假设现在有两个自然数A和B,S是AB的所有约数之和。 请你求出S mod 9901的值是多少。 思路: 考虑a^b次方的约数可以变为对a进行质数分解,对每个指数的次数乘上b.就构成了a^b的约数集合
阅读全文
摘要:链接: https://www.acwing.com/problem/content/description/98/ 题意: 汉诺塔问题,条件如下: 1、这里有A、B、C和D四座塔。 2、这里有n个圆盘,n的数量是恒定的。 3、每个圆盘的尺寸都不相同。 4、所有的圆盘在开始时都堆叠在塔A上,且圆盘尺
阅读全文
摘要:链接: https://www.acwing.com/problem/content/93/ 题意: 给定一张 n 个点的带权无向图,点从 0~n 1 标号,求起点 0 到终点 n 1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n 1 不重不漏地经过每个点恰好一次。 思路
阅读全文
摘要:链接: https://www.acwing.com/problem/content/description/97/ 题意: 你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:
阅读全文
摘要:堆排序 堆排序以二叉形式。 以数组形式表示。a[1] 是二叉堆的跟结点,每个结点的有左右子结点。规定每个结点的值大于其子节点的堆叫最大堆,小于的叫最小堆。 无序数组通过建堆的方式建立成一个最大或最小堆。 算了 ,说不清,上代码。 代码:
阅读全文
摘要:链接:https://oj.ahstu.cc/JudgeOnline/problem.php?id=2021 题意: 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。 现在,给你一个N个元素的序列,请你判断
阅读全文
摘要:归并排序实现 归并排序,分治法,将一个无序的数组,不断二分,对两边数组进行排序,在通过递归的方式,将两个排过序的数组合并(关键)。 当子数组只有一个值时,即可进行合并。 代码如下:
阅读全文