zoukankan      html  css  js  c++  java
  • Wormhole

    Wormhole

     

     

     注意精度,不要用long long 输出,用%.0f输出

    AC_Code

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <string>
     4 #include <cstring>
     5 #include <string>
     6 #include <cmath>
     7 #include <cstdlib>
     8 #include <algorithm>
     9 #include <bits/stdc++.h>
    10 using namespace std;
    11 typedef long long ll;
    12 const int maxn = 65;
    13 const int inf=0x3f3f3f3f;
    14 const ll mod=1e9+7;
    15 
    16 map<string,int>mp;
    17 int n,w,q;
    18 struct node{
    19     ll xi,yi,zi;
    20 //    string s;
    21 }a[maxn];
    22 double f[maxn][maxn];
    23 double h[maxn];
    24 string s1[maxn], s2[maxn];
    25 
    26 void floyd(){
    27     for(int k=0;k<n;k++){
    28         for(int i=0;i<n;i++){
    29             for(int j=0;j<n;j++){
    30                 if( f[i][j]>f[i][k]+f[k][j]){
    31                     f[i][j]=f[i][k]+f[k][j];
    32                 }
    33             }
    34         }
    35     }
    36 }
    37 
    38 void init(){
    39     for(int i=0;i<n;i++){
    40         for(int j=i+1;j<n;j++){
    41             ll x=abs(a[i].xi-a[j].xi);
    42             ll y=abs(a[i].yi-a[j].yi);
    43             ll z=abs(a[i].zi-a[j].zi);
    44             f[i][j]=(double)sqrt(1.0*x*x+1.0*y*y+1.0*z*z);
    45             f[j][i]=f[i][j];
    46         }
    47     }
    48 }
    49 
    50 int main()
    51 {
    52     int t,cas=0;
    53     scanf("%d",&t);
    54     while( t-- ){
    55         string ss,sss;
    56         memset(a,0,sizeof(a));
    57         scanf("%d",&n);
    58         for(int i=0;i<n;i++){
    59             ll x,y,z;
    60             cin>>ss>>x>>y>>z;
    61             mp[ss]=i;
    62 //            a.s = ss;
    63             a[i].xi = x;
    64             a[i].yi = y;
    65             a[i].zi = z;
    66         }
    67         init();
    68         scanf("%d",&w);
    69         for(int i=0;i<w;i++){
    70             cin>>ss>>sss;
    71             int u=mp[ss];
    72             int v=mp[sss];
    73             f[u][v]=0.0;
    74         }
    75         floyd();
    76         scanf("%d",&q);
    77         for(int i=0;i<q;i++){
    78             cin>>s1[i]>>s2[i];
    79             int u=mp[s1[i]];
    80             int v=mp[s2[i]];
    81             h[i]=f[u][v];
    82         }
    83         printf("Case %d:
    ", ++cas);
    84         for(int i=0;i<q;i++){
    85 //            int u=mp[s1[i]];
    86 //            int v=mp[s2[i]];
    87             cout<<"The distance from "<<s1[i]<<" to "<<s2[i]<<" is ";
    88             printf("%.0f",h[i]);
    89             cout<<" parsecs."<<endl;
    90         }
    91     }
    92     return 0;
    93 }
  • 相关阅读:
    推荐一个wpf&sliverlight的图表控件
    数独求解
    WPF中的 CollectionChanged事件通知
    Windows 7 任务栏之缩略图预览(Thumbnail)
    把Google HK设为IE默认的搜索引擎
    F#小记——1. Hello F#
    F#小记——2. 基本数据类型
    使用异步socket的时候需要注意memory spike
    《everytime you kissed me》的中文歌词
    我回来了o(∩_∩)o...
  • 原文地址:https://www.cnblogs.com/wsy107316/p/12247924.html
Copyright © 2011-2022 走看看