• POJ_1862 Stripies 【贪心】


    一、题面

    POJ1862

    二、分析

    反省一下,自己英语水平着实不行,该题其实就是问若给出若干个这种生物,根据这种体重变换方式,最终合并成一个后,体重最少是多少。根据公式

    $m = 2sqrt{m_{1}m_{2}}$

    我们可以发现,就是一个开根号,那么为了能够得到更小的体重,肯定要让体重大的先合并,这样大的体重会被后面多次开根号,变得越来越小。这就是贪心策略。

    三、AC代码

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <queue>
     4 #include <algorithm>
     5 #include <fstream>
     6 #include <cmath>
     7 
     8 using namespace std;
     9 
    10 const int MAXN = 1e2+3;
    11 int Data[MAXN];
    12 
    13 int main()
    14 {
    15     //freopen("input.txt", "r", stdin);
    16     int N;
    17     while(scanf("%d", &N)!=EOF)
    18     {
    19         for(int i = 0; i < N; i++)
    20             scanf("%d", &Data[i]);
    21         sort(Data, Data+N, greater<int>() );
    22         double ans;
    23         ans = Data[0];
    24         for(int i = 1; i < N; i++)
    25         {
    26             ans = 2.0*sqrt(ans*Data[i]);
    27         }
    28         printf("%.03f
    ", ans);
    29     }
    30     return 0;
    31 }
    View Code
  • 相关阅读:
    5.6
    5.6
    4.30数据结构
    4.30
    POJ3616
    4.29
    4.28
    186周赛
    CF1267G Game Relics
    CF763E Timofey and our friends animals
  • 原文地址:https://www.cnblogs.com/dybala21/p/10137403.html
Copyright © 2020-2023  润新知