摘要:
题目描述: 题目传送门 解题思路: 遇到这种,在满足某种条件下找最值的问题:如这题,在一条能够从起始点到达目标点的路径中找到比值最小的最大值和最小值。我们往往会先枚举这些可行的路径,然后在路径里面找到最大值和最小值,这样子的话很难找到头绪。 我们可一个换个思路,枚举路径的权值的最小值的下限 i i 阅读全文
摘要:
题目描述: 题目传送门 解题思路: 一道在地图上连通块中判环的题目,我们可以考虑用 d f s dfs dfs 和 b f s bfs bfs 以及并查集这三种方法来判环。 深搜判环 由于环的本质上就类似于一条头尾相接的链,因此用“一路走到底” 的DFS是最合适不过的了。 我们每个点都尝试延伸,向与 阅读全文
摘要:
题目描述: 解题思路: 首先需要有前置知识,在无向图中,联通分量表示最大联通子图中的节点个数。 然后我们考虑多种做法。 做法一: d f s + dfs+ dfs+ 邻接矩阵 #include <iostream> #include <cstring> using namespace std; in 阅读全文
摘要:
题目描述: 样例错了,输出为 27。 解题思路: 这一题就是一道裸的广搜,主要就是考虑路径输出。 我们需要一个 p r e i pre_i prei ,记录节点 i i i 在广搜中是由哪个节点转移的,然后最后用递归一步步倒推输出,即可处理路径问题。 输出路径函数: void print(int 阅读全文
摘要:
题目描述: 给定 N N N 种硬币,其中第 i i i 种硬币的面值为 a i a_i ai,共有 b i b_i bi 个。从中选出若干个硬币,把面值相加,若结果为 s s s,则称“面值 s s s 能被拼成”。求 1 1 1 到 M M M 之间能被拼成的面值有多少个。 输入格式: 输入 阅读全文