zoukankan      html  css  js  c++  java
  • zoj 1942 Frogger

    题目大意,湖中有n个石头,一只青蛙要从一号石头上跳到2号石头上,要使所有可行路径中最大边最小,并输出该最大边。

    同zoj1952类似,动态规划,用dist[ i ][ j ]表示从 i 到 j 路径中的最长边,则枚举中间节点 k ,则状态转移方程为dist[ i ][ j ] = min( dist[ i ][ j ] , max(dist[ i ][ k ],dist[ k ][ j ])) ,形式同floyd相同。

    #include <stdio.h>
    #include <math.h>
    double min(double a,double b)
    {
    	if(a>b) return b;
    	else return a;
    }
    double max(double a,double b)
    {
    	if(a>b) return a;
    	else return b;
    }
    int n;
    double dist[210][210];
    double x[210],y[210];
    int main()
    {
    	int i,j,k,sum=0;
    	while(1)
    	{
    		sum++;
    		scanf("%d",&n);
    		if(n==0)
    			break;
    		for(i=0;i<n;i++)
    			scanf("%lf%lf",&x[i],&y[i]);
    		for(i=0;i<n;i++)
    			for(j=i+1;j<n;j++)
    				dist[i][j]=dist[j][i]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
    		for(k=0;k<n;k++)
    			for(i=0;i<n;i++)
    				for(j=0;j<n;j++)
    					dist[i][j]=min(dist[i][j],max(dist[i][k],dist[k][j]));
    		printf("Scenario #%d
    ",sum);
    		printf("Frog Distance = %.3lf
    ",dist[0][1]);
    		printf("
    ");
    	}
    	return 0;
    }


     

  • 相关阅读:
    MvvmLight:Command
    TreeView控件
    visual studio背景色
    公共语言运行时
    颜色列表
    自定义控件【旋转按钮,带圆角的边框】
    Loding Animation
    ComboBox前台xaml绑定数据
    Blend一些属性图解
    找到视觉树的方法
  • 原文地址:https://www.cnblogs.com/vermouth/p/3710222.html
Copyright © 2011-2022 走看看