随笔分类 - 贪心
摘要:洛谷 点的移动 一、题目大意 求平面上 个点的曼哈顿距离的最小值。 二、解题思路 枚举,我们假设 个点的最小曼哈顿距离,我们假设汇集的点是 ,则 必然可以选择 个点的横坐标中的一个, 也可以选
阅读全文
摘要: [ 普及组] 排座椅 题解 先想一下算法:因为题目里出现了 最优解 , 最好的方案 关键字,所以一定会用 贪心。然后从题目给的样例解释可以看到:如果相邻的两行有许多组说话的同学,那么在这两行中间加一条过道是非常划算的;同理,列也是如此。 恍然大悟,只要找出
阅读全文
摘要:洛谷 士兵站队 问题简述 这道题我们可以换另一种思路去看待它,就容易理解了: 在一个平面上,把 个点排列在一条与 轴平行的直线的整点上,且相邻两点的距离为 。 求一种排列方案,使得这 个点到目标位置的 曼哈顿距离和最小。 解法综述 由
阅读全文
摘要:洛谷 输油管道问题 如果只有一口井,那么显然是越近越好。如果有两口井,那么显然是有以下三种情况: 两口井都在主管道北边,那么这个时候的两个连接管道的长度和肯定大于两口井的坐标之差。 两口井都在主管道南边,和情况1是一样的 两口井,一个在主管道南边,一个在主管道北边,那么
阅读全文
摘要:## [ . 冗余路径](https://www.acwing.com/problem/content/description/397/) ### 一、题目描述 为了从 个草场中的一个走到另一个,奶牛们有时不得不路过一些她们讨厌的可怕的树。 奶牛们已经厌倦了被迫走某
阅读全文
摘要:题目传送门 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int M = 1e6 + 10; int m, n, k;//m表示学校数,n表示学生 int a[M]; long long res;
阅读全文
摘要:题目传送门 #include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 5010; int n, s; //苹果数 n,力气 s int a, b; //椅子的高度a,陶陶手伸直的最大长度b。 s
阅读全文
摘要:## . 耍杂技的牛 一、题目描述 农民约翰的 头奶牛(编号为 )计划逃跑并加入马戏团,为此它们决定练习表演杂技。 奶牛们不是非常有创意,只提出了一个杂技表演: 叠罗汉,表演时,奶牛们站在彼此的身上,形成一个高高的垂直堆叠。 奶牛们正在试图找到自己在这个
阅读全文
摘要:## . 合并果子 一、题目描述 在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。 达达决定把所有的果子合成一堆。 每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。 可以看出,所有的果子经过 次合并之后
阅读全文
摘要:## . 区间覆盖 一、题目描述 给定 个闭区间 [] 以及一个线段区间 ,请你 选择尽量少的区间,将指定线段区间完全覆盖。 输出最少区间数,如果无法完全覆盖则输出 。 输入格式 第一行包含两个整数 和 ,表示给
阅读全文
摘要:## . 最大不相交区间数量 一、题目描述 给定 个闭区间 ,请你在数轴上选择若干区间,使得选中的区间之间互不相交(包括端点)。 输出可选取区间的最大数量。 输入格式 第一行包含整数 ,表示区间数。 接下来 行,每行包含两个整数
阅读全文
摘要:## . 区间分组 一、题目描述 给定 个闭区间 ,请你将这些区间分成若干组,使得每组内部的区间两两之间(包括端点)没有交集,并使得 组数尽可能小。 输出最小组数。 输入格式 第一行包含整数 ,表示区间数。 接下来 行,每行包含两
阅读全文
摘要:## . 区间选点 一、题目描述 给定 个闭区间 ,请你在数轴上 选择尽量少的点,使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量。 位于区间端点上的点也算作区间内。 输入格式 第一行包含整数 ,表示区间数。 接下来
阅读全文
摘要:## . 货仓选址 一、题目描述 在一条数轴上有 家商店,它们的坐标分别为 。 现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。 为了提高效率,求把货仓建在何处,可以使得 货仓到每家商店的距离之和最小。 输入格式 第一行输
阅读全文
摘要:## . 排队打水 一、题目描述 有 个人排队到 个水龙头处打水,第 个人装满水桶所需的时间是 ,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小? 输入格式 第一行包含整数 。 第二行包含 个整数,其中第 个
阅读全文
摘要: . 最长上升子序列 II 一、题目描述 给定一个长度为 的数列,求数值严格单调递增的子序列的长度最长 是多少。 输入格式 第一行包含整数 。 第二行包含 个整数,表示完整序列。 输出格式 输出一个整数,表示最大长度。 数据范围 \
阅读全文
摘要:题目传送门 #include <bits/stdc++.h> using namespace std; typedef long long LL; LL x, y, ans; //辗转相除法 LL gcd(LL a, LL b) { if (b == 0) return a; ans += 4 *
阅读全文
摘要:题目传送门 一、题意解析 每只兔子的喜好整数范围不一样,有的大,有的小。想求方案的总数量,就是所有的可行方案解数。 所有方案解,就是所有可能,不能丢失某种情况。 那么,如何才能不丢失情况呢?就是最全的,也可以理解为最多的。 咋能最多呢?如果让兔子们随便挑选,肯定完蛋了~,所以,需要让他们有“秩序”的
阅读全文
摘要:题目传递门 一、关键语句解析: 如果有小组内人数太少,就会因为时间不够而无法获得高分,于是小可可想让你给出一个合法的分组方案,满足所有人都恰好分到一个小组,使得人数最少的组人数最多,输出人数最少的组人数的最大值。 这TM是人话吗?是我语文不好??强行理解一下: (1)每个同学都要进入到一个组中去,不
阅读全文