标签:pictures ble date clu short line pre ESS struct
C/C++:
1 #include <cmath> 2 #include <cstdio> 3 #include <climits> 4 #include <algorithm> 5 using namespace std; 6 7 int n; 8 double my_map[110][110]; 9 10 struct node 11 { 12 double a, b; 13 }P[110]; 14 15 double my_prim() 16 { 17 int my_pos = 1, my_book[110] = {0, 1}; 18 double my_ans = 0.0, my_dis[110] = {0, INT_MAX}; 19 for (int i = 2; i <= n; ++ i) 20 my_dis[i] = my_map[i][my_pos]; 21 22 for (int i = 1; i < n; ++ i) 23 { 24 double my_temp = INT_MAX; 25 for (int j = 1; j <= n; ++ j) 26 { 27 if (!my_book[j] && my_dis[j] < my_temp) 28 { 29 my_temp = my_dis[j]; 30 my_pos = j; 31 } 32 } 33 my_ans += my_temp; 34 my_book[my_pos] = 1; 35 for (int j = 1; j <= n; ++ j) 36 { 37 if (!my_book[j] && my_dis[j] > my_map[j][my_pos]) 38 my_dis[j] = my_map[j][my_pos]; 39 } 40 } 41 return my_ans; 42 } 43 44 int main() 45 { 46 /** 47 Date Input Initialize 48 */ 49 while (~scanf("%d", &n)) 50 { 51 for (int i = 1; i <= n; ++ i) 52 scanf("%lf%lf", &P[i].a, &P[i].b); 53 for (int i = 1; i <= n; ++ i) 54 { 55 for (int j = i+1; j <= n; ++ j) 56 { 57 double my_temp_a = (P[i].a - P[j].a) * (P[i].a - P[j].a); 58 double my_temp_b = (P[i].b - P[j].b) * (P[i].b - P[j].b); 59 double my_temp = sqrt(my_temp_a + my_temp_b); 60 my_map[i][j] = my_map[j][i] = my_temp; 61 } 62 } 63 printf("%.2lf\n", my_prim()); 64 } 65 return 0; 66 }
hdu 1162 Eddy's picture (prim)
标签:pictures ble date clu short line pre ESS struct
原文地址:https://www.cnblogs.com/GetcharZp/p/9427752.html