poj2253】的更多相关文章

题目链接: https://vjudge.net/problem/POJ-2253 题目大意: 青蛙A想访问青蛙B,必须跳着石头过去,不幸的是,B所在的石头太远了,需要借助其他的石头,求从A到B的路径中,青蛙最少需要的跳跃能力是多远 思路: 理清题意,这里规定的是每条路中的最大边为青蛙需要的跳跃能力,要求这个跳跃能力的最小值,思路和POJ2263一样POJ2263求的是最小边的最大值,这里求的是最大边的最小值,同样是松弛方程改变一下就可以,三种算法均可,这里附上Floyd和dijkstra Fl…
https://vjudge.net/problem/POJ-2253 Freddy Frog is sitting on a stone in the middle of a lake. Suddenly he notices Fiona Frog who is sitting on another stone. He plans to visit her, but since the water is dirty and full of tourists' sunscreen, he wan…
https://vjudge.net/problem/POJ-2253 题意 公青蛙想到母青蛙那里去,期间有许多石头,公青蛙可以通过这些石头跳过去.问至少要跳的最大距离,即所有路径上石头间的最大距离的最小值. 分析 这题是最短路的变形,最短路求的是路径总长的最小值,而此题是求通路中最长边的最小值.其实就是对最短路的定义不同: 一般的最短路为“每个边的权值之和”,这个题的最短路为 “各个边的权值的最大值”.注意格式输出,G++用%f. #include<iostream> #include<…
题目链接 http://poj.org/problem?id=2253 题意 给出青蛙A,B和若干石头的坐标,现在青蛙A要跳到青蛙B所在的石头上,求出所有路径中最远那一跳的最小值. 思路 Floyd算法的变形,将求两点之间的最短路改成求两点之间最大边权的最小值即可. 代码 #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <cma…
题目链接:https://cn.vjudge.net/problem/POJ-2253 题意 一只Forg需要从节点1走到节点n 现要找一条各个间隔最小的路径 问间隔最小是多少 思路 用dijsktra就好 查找间隔最小的路径 注意浮点数的比较 代码 #include <cstdio> #include <vector> #include <queue> #include <cmath> using namespace std; const int maxn…
传送门:http://poj.org/problem?id=1797 题意: 在起点和终点间找到一条路,使得经过的边的最小值是最大的: 和POJ2253类似,传送门:http://www.cnblogs.com/ckxkexing/p/8747108.html 思路: 跑一边dijkstra,每次松弛的条件改为:if( dis[tmp] < min(dis[v],tmpc) )dis[tmp] = min( dis[v] , tmpc); 注意这道题和POJ2253的区别在于每次选取的节点要最小…
题目链接:https://vjudge.net/problem/POJ-2253 题意:给出n个点的坐标,求点1到点2的forg distance,其定义为点1到点2的所有路径中最长边的最小值. 思路:floyd真的很强大,改一下定义,dis[i][j]表示i到j的frog distance,然后枚举中间点k,转移方程是dis[i][j]=min(dis[i][j],max(dis[i][k],dis[k][j])).复杂度O(n^3). AC代码: e<cstdio> #include<…
frogger POJ-2253 这题的代码特别像prim求解最小生成树的代码,其实两者本来也很像. 这里的d数组不再维护的起点到该点的最短距离了,而是路径中的最长距离. #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<string> #include<vector> #include<cmath> usi…
/* 题意:就是源点到终点有多条的路径,每一条路径中都有一段最大的距离! 求这些路径中最大距离的最小值! Dijkstra, Floyd, spfa都是可以的!只不过是将松弛的条件变一下就行了! 想了一下,这道题用最小生成树做也可以啊,图总是连通的嘛!所以建一棵最小 生成树,然后dfs一下,从源点1,到终点2的路径上,查找边长最大的路径! 附上代码..... */ #include<iostream> #include<cstdio> #include<algorithm&g…
#include<iostream> #include<algorithm> #include<cmath> #include<cstdio> using namespace std; ][]; ],b[],n; void floyd() { ;k<=n;k++) ;i<=n;i++) ;j<=n;j++) dis[i][j]=min(dis[i][j],max(dis[i][k],dis[k][j])); } int main() { ;…