01 2021 档案
摘要:原题链接:120. 防线 达达学习数学竞赛的时候受尽了同仁们的鄙视,终于有一天......受尽屈辱的达达黑化成为了黑暗英雄怪兽达达。 就如同中二漫画的情节一样,怪兽达达打算毁掉这个世界。 数学竞赛界的精英 lqr 打算阻止怪兽达达的阴谋,于是她集合了一支由数学竞赛选手组成的超级行动队。 由于队员们个
阅读全文
摘要:原题链接:119. 袭击 在与联盟的战斗中屡战屡败后,帝国撤退到了最后一个据点。 依靠其强大的防御系统,帝国击退了联盟的六波猛烈进攻。 经过几天的苦思冥想,联盟将军亚瑟终于注意到帝国防御系统唯一的弱点就是能源供应。 该系统由N个核电站供应能源,其中任何一个被摧毁都会使防御系统失效。 将军派出了N个特
阅读全文
摘要:原题链接:118. 分形 ###题目描述 分形,具有以非整数维形式充填空间的形态特征。 通常被定义为“一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状”,即具有自相似的性质。 现在,定义“盒子分形”如下: 一级盒子分形: X 二级盒子分形: X X X X X
阅读全文
摘要:原题链接:117. 占卜DIY 解题思路 ####搜索+模拟 感觉这道题目,就是一道纯模拟的题目,没有什么难点,大致有几个易错点,这里提醒一下。 每次拿该堆的末尾,这一点容易犯错,因为不是拿之前的第四张牌,而是当前的末尾的牌 读入问题,这里读入需要特判几个点,也就是A,10,J,Q,K 注意储存问题
阅读全文
摘要:原题链接:116. 飞行员兄弟 解题思路 ####算法标签:位运算+二进制枚举 这道题目解题思路大致是,首先我们可以构造一个16位二进制数,然后,二进制数的每一位代表4x4矩阵中的一位,例如1代表(1,1),2代表(1,2),3代表(1,3),4代表(1,4),5代表(2,1)。既然这样的话,那么我
阅读全文
摘要:原题链接:115.给树染色 解题思路 ###贪心+树上操作+并查集思想+模拟性质 首先这道题有一个错误的思想,那就是看当前节点的子节点,选择最大的那个节点,这个明显是错误的,如下图所示。 如果按照上面的错误贪心实现肯定是错误的。 下面是正确的贪心思路 我们知道,我们肯定是要权值val最大的点x,越先
阅读全文
摘要:原题链接:112. 雷达设备 解题思路 ###贪心 O(nlogn) 如下图所示,对于任意一个小岛 (x,y),我们都可以在海岸线上求出能覆盖该小岛的建造雷达的区间 [a,b]。 由勾股定理可知 a = \sqrt{d2-y2} b = \sqrt{d2-y2} 将所有小岛转化成区间后,问题转化为:
阅读全文
摘要:原题链接:111. 畜栏预定 解题思路 按照开始吃草的时间把牛排序。 维护一个数组S,记录当前每个畜栏安排进去的最后一头牛,最初没有畜栏。 依次对每头牛,扫描数组S,找到任意一个畜栏,满足当前的牛开始吃草的时间不早于畜栏中最后一头牛结束吃草的时间。如果这样的畜栏不存在,则为其新建一个畜栏。 这个贪心
阅读全文
摘要:原题链接:110. 防晒 解题思路 ###贪心+排序 我们首先将奶牛可以承受的最小值,递减排序,也就是降序排列,然后将防晒霜固定的值,递减排序,还是降序排列. 对于每一个头奶牛而言,当然是要选择目前来说满足条件的最差的防晒霜,什么最差的定义,就是选择满足奶牛条件的SPF最大的那一瓶防晒霜. 注意:降
阅读全文
摘要:原题链接:109. 天才ACM 解题思路 首先,对于一个集合S,显然应该取S中最大的M个数和最小的M个数,最大和最小构成一对,次大和次小构成一对···这样求出“校验值”最大。而为了让数列A分成的段数最少,每一段都应该在“校验值”不超过T的前提下,尽量包含更多的数。所以我们从头开始对A进行分段,让每一
阅读全文
摘要:原题链接:108. 奇数码问题 解题思路 奇数码问题两个局面可以达成,当且仅当两个局面下网格中的数以此写成1行 n*n-1 个元素的序列后(不考虑空格),逆序对个数的奇偶性相同。例如题目描述中的第一个局面可以写成[5 2 8 1 3 4 6 7]。该结论的必要性很容易证明:空格左右移动时,写数交换了
阅读全文
摘要:原题链接:107. 超快速排序 解题思路 只通过比较和交换相邻两个数值的排序方法,实际上就是冒泡排序。在排序过程中每找到一对大小颠倒的相邻数值,把他们交换,就会使整个序列的逆序对个数减少1,最终排好序后逆序对个数显然为0,所以对a进行冒泡排序的最少交换次数就是序列a种逆序对的个数。我们直接使用对并排
阅读全文
摘要:原题链接:106. 动态中位数 解题思路 ####对顶堆 这是一个很有用的算法,具体思路大致是,开两个堆,一个是大根堆,一个是小根堆,然后小于中位数的都放在大根堆,大于中位数的都放在小根堆,如果说,一个堆的个数大于了当前序列的 1/2 ,那么就将多余的数移过去,直到两个堆数量相等。 样例代码 #in
阅读全文
摘要:原题链接:105.七夕祭 解题思路 ####分治+贪心+前缀和+中位数+排序 这道题有一个非常重要的性质就是,只会改变相邻的两个数的位置,因此我们交换两个数,只会改变一行或一列的喜爱小摊,而不会同时改变行和列的喜爱小摊,既然这样的话,我们就可以将这道题目分为两个部分,一部分是求行的最少次数,一部分是
阅读全文
摘要:原题链接:104.货仓选址 解题思路 把A[1]~A[N]排序,设货仓建在 X 坐标处,X 左侧的商店有 P 家,右侧的商店有 Q 家。若 P < Q ,则把货仓的选址向右移动 1 单位距离,距离之和就会减小 Q - P。同理,若 P > Q ,则货仓的位置想左移动会使距离之和变小。当 P = Q
阅读全文