![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最小生成树算法
小黑妹
穷则独善其身,达则兼济天下!
展开
-
poj 2253 Frogger
题目意思: 有两只青蛙,分别在两个石头上,青蛙A想要到青蛙B那儿去,他可以直接跳到B的石头上,也可以跳到其他石头上,再从其他石头跳到B那儿,求青蛙从A到B的所有路径中最小的Frog Distance,我们定义Frog Distance为从A到B的一条路径中所跳的最大距离,例如,如果从A到B某条路径跳的距离是2,5,6,4,则Frog Distance就是6,题目输入的第一行代表石头的个数,原创 2012-08-15 10:21:12 · 922 阅读 · 0 评论 -
poj 1797 Heavy Transportation
这道题和poj2253是类似的,只要稍做修改即可。这道题求最大生成树的最小路径,那道题是求最小生成树的最大路径。所以就不多做解释咯! 代码: #include #include #include using namespace std; int dis[1001]; int visit[1001]; int map[1001][1001]; int n,k; double原创 2012-08-15 10:39:36 · 461 阅读 · 0 评论 -
poj 2485 解题报告
这道题和2253一个思路,因为最后要全联通,所以不妨采用dijstra的思路,dis【i】表示第i个点到第1个点的所有可能路径的最大边权的最小值,则有如下递推方程: if{dis[i] > max{dis[j],map[i][j]} dis[i] = max{dis[j],map[i][j]} 代码: #include #include #define MAX 200000000原创 2012-08-15 17:55:03 · 468 阅读 · 0 评论 -
poj 189
题意大概是这样的:用一个7位的string代表一个编号,两个编号之间的distance代表这两个编号之间不同字母的个数。一个编号只能由另一个编号“衍生”出来,代价是这两个编号之间相应的distance,现在要找出一个“衍生”方案,使得总代价最小,也就是distance之和最小。 例如有如下4个编号: aaaaaaa baaaaaa abaaaaa aabaaaa原创 2012-08-15 22:29:06 · 624 阅读 · 0 评论 -
primem模版
#include using namespace std; int a[101][101]; int flag[101]; int main() { int n,i,j,sum,k; while(scanf("%d",&n)!=EOF) { for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf(原创 2012-09-02 13:51:41 · 608 阅读 · 0 评论