首页 > 代码库 > hdu--5135--贪心
hdu--5135--贪心
尽量选边数大的3根木棍来组成一个三角形 一直到无法选取为止
这边计算三角形面积 还是用 海伦公式比较方便
1 #include <iostream> 2 #include <algorithm> 3 #include <cmath> 4 #include <cstring> 5 #include <iomanip> 6 using namespace std; 7 8 double Abs( double x ) 9 {10 return x>=0? x : -x;11 }12 13 double a[15];14 bool vis[15];15 16 int main()17 {18 cin.sync_with_stdio(false);19 int n;20 double x , y , z , ans;21 while( cin >> n && n )22 {23 for( int i = 0 ; i<n ; i++ )24 {25 cin >> a[i];26 }27 memset( vis , false , sizeof(vis) );28 sort( a , a+n );29 ans = 0;30 for( int i = n-1 ; i>=2 ; i-- )31 {32 if( !vis[i] )33 {34 x = a[i];35 y = z = -1;36 int j = i-1;37 while( j>=0 )38 {39 if( !vis[j] )40 {41 y = a[j];42 break;43 }44 -- j;45 }46 int k = j-1;47 while( k>=0 )48 {49 if( !vis[k] )50 {51 z = a[k];52 break;53 }54 -- k;55 }56 if( y!=-1 && z!=-1 && y+z>x )57 {58 double mid = ( x + y + z ) / 2;59 ans += sqrt( mid * Abs(mid-x) * Abs(mid-y) * Abs(mid-z) );60 vis[i] = vis[j] = vis[k] = true;61 }62 }63 }64 cout << setiosflags(ios::fixed);65 cout << setprecision(2) << ans << endl;66 }67 return 0;68 }
hdu--5135--贪心
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。