摘要:
题目链接: "https://www.luogu.com.cn/problem/P1334" 解题思路: 拆机就是合并的反过程,合并的时候肯定选择长度最短的两块合并。 所以贪心n 1次,每次选择最小的两块合并。 用一个最小堆来维护木块。 实现代码如下: 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P3378" 题目大意:维护一个小根堆。 堆的入门题。 实现代码如下: 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P2170" 解题思路: 先用并查集计算出所有的集合内元素个数(以下简述为集合大小)。 然后对每一个集合,以集合大小同时作为价值和体积做 01背包。 我们在计算中用 $dp[i]$ 表示体积为 $i$ 的背包所能够包含的 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P1433" 题目大意 房间里放着 $n$ 块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在 $(0,0)$ 点处。 输入格式 第一行一个正整数 $n$。 接下来每行 $2$ 个实数,表示第 $i$ 块 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P2835" 解题思路: 如果A愿意借给B,则B的入度加一。 然后计算一下有多少个点的入度为0,这些是我们需要分配光盘的。 但是可能存在强联通分量,这种情况下,一个强联通分量里没有入读为0的点,但是我需要制定以下这个点。 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P1991" 解题思路: 二分答案+并查集。 但是这道题目写的不是很明确,其实如果对于一个D大家都在一个连通块的时候,是不需要配备卫星通话线路的。 也就是说,如果我连通块的数量是 $cnt$ ,那么我只需要判断 $cnt 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P4185" 解题思路完全参考自 "cjx大佬的博客" 实现代码如下: 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P4145" 题目大意: 两种操作: 1. 区间求和; 2. 区间开方。 解题思路: 使用线段树解决这个问题。 但是区间更新(开方)需要懒惰标记。 但是这样也会TLE,所以还需要记录区间更新的次数的最小值,如果这个区间内 阅读全文
摘要:
题目链接: "https://www.luogu.com.cn/problem/P2658" 解题思路: 这道题当D确定的情况下,其实就是一个连通块问题。 然后我们二分答案求最小的D即可。 实现代码如下: "洛谷P3073" 和这题一样。 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P1546 题目大意: 给你一个邻接矩阵,求它的最小生成树。 解题思路: 因为是邻接矩阵,用Prim算法求最小生成树写起来比较方便。 实现代码如下: #include <bits/stdc++.h> using namesp 阅读全文