Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

读题啊兄弟们!老兄们!我鄙视我自己!WA的都进来看看【附代码】

Posted by SCSE10_Candybox at 2010-12-30 23:15:29 on Problem 2253
Stone #1 is Freddy's stone, stone #2 is Fiona's stone
鄙视自己啊。。。很习惯性的计算从0到n-1的最长长度了...鄙视啊...附代码...
#include <iostream>
#include <cmath>
using namespace std;

#define inf 999999999;
const int NN=3000;
double posi[NN][2];
double map[NN][NN];
int n;
double poww(double a)
{
       return a*a;
}
double max(double a,double b)
{
       if (a>b) return a;
       return b;
}
int main()
{
    int u=0;
    while (scanf("%d",&n),n!=0)
    {
          ++u;
          for (int i=0;i<n;++i)
          {
              scanf("%lf%lf",&posi[i][0],&posi[i][1]);
              for (int j=0;j<i;++j)
                  map[i][j]=map[j][i]=sqrt(poww(posi[i][0]-posi[j][0]) + poww(posi[i][1]-posi[j][1]));
              map[i][i]=0;
          }
          int i,j,k;
          double ans[NN];
          for (int i=0;i<n;++i) ans[i]=inf;
          bool v[NN];
          memset(v,0,sizeof(v));
          for (ans[0]=0,j=0;j<n;++j)
          {
              for (k=-1,i=0;i<n;++i)
                  if (!v[i] && (k==-1 || ans[i]<ans[k]))
                     k=i;
              for (v[k]=1,i=0;i<n;++i)
                  if (!v[i] && max(ans[k],map[k][i])<ans[i])
                     ans[i]=max(ans[k],map[k][i]);
          }
          printf("Scenario #%d\nFrog Distance = %.3lf\n\n",u,ans[1]);
    }
    return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator