摘要: https://vjudge.net/problem/Gym-102021M 题意: 给你一个最大为$500*500$的矩阵,你可以在矩阵中的点中上下左右移动。接下来最多$10^5$次询问,每次询问两个点,你要从第一个点走到第二个点,使得路程中经过的点权值的最大值最小,问你这个点权值是多少。 思路: 阅读全文
posted @ 2021-03-15 23:20 stff577 阅读(76) 评论(0) 推荐(0)
摘要: 问题: 对于下图使用$Dijkstra$算法求由顶点$a$到顶点$h$的最短路径,按实验报告模板编写算法。 解析 我们从一个源点$S$出发,要找它到点$T$的最短距离,可以考虑将和源点相邻的点都放到我们的一个决策集合里。然后我们每次贪心地拿出到距离点$S$距离最近的点$u$,然后遍历跟点$u$相邻的 阅读全文
posted @ 2021-03-15 16:33 stff577 阅读(62) 评论(0) 推荐(0)
摘要: 问题: 用Floyd算法求解下图各个顶点的最短距离。写出Floyd算法的伪代码和给出距离矩阵(顶点之间的最短距离矩阵),按实验报告模板编写算法。 解析 点$u$到点$v$有两种方案可以走,一种是点$u$直接到点$v$,一种是通过中间点$k$,点$u$先到点$k$,再从点$k$走到点$v$。然后我们枚 阅读全文
posted @ 2021-03-15 15:52 stff577 阅读(86) 评论(0) 推荐(0)
摘要: https://vjudge.net/problem/POJ-1015 题意: 现有$n$个人,每个人都有$p$值和$d$值,现在要选$k$个人,先要让他们的$p$值和与$d$值和的差最小,再让他们的$p$值和与$d$值和的和最大,并从小到大输出你选的人。 思路: 考虑$dp[j][w]$,代表选了 阅读全文
posted @ 2021-03-15 13:51 stff577 阅读(44) 评论(0) 推荐(0)
摘要: 问题: Kruskal构造最小生成树的过程。 解析 将所有边存下来,按照权值从小到大排序,然后遍历所有边,每次询问边的两个点是否已经都在最小生成树里了,如果都在,就跳过,否则将其加入,遍历完所有边或者已经形成了最小生成树后结束。 解析图 设计 int kruskal() { int ans = 0; 阅读全文
posted @ 2021-03-15 09:27 stff577 阅读(52) 评论(0) 推荐(0)
摘要: 问题: Prim构造最小生成树的过程。 解析 每次在最小生成树外的点中找到距离当前最小生成树距离最近的点,将其加入最小生成树内,同时更新跟它相邻的点距离最小生成树的距离。直到找不到点或者生成最小生成树为止。 解析图 设计 int prim() { d[1] = 0; ans = 0; for (1 阅读全文
posted @ 2021-03-15 09:01 stff577 阅读(58) 评论(0) 推荐(0)