• zoj 3194Coverage


    Given n points (xi, yi) (i = 1, 2 ... n) in a plane, where all xi will be distinct. After connecting the n points with staight lines in order from the leftmost point to the rightmost point, the area below the lines is called coverage. Now, it's your job to calculate the maximum coverage area, if yi (i = 1, 2 ... n) can be swapped arbitrarily.

    Input

    The first line of the input is an integer t (t <= 100), indicate the number of cases.

    Each case starts with one integer n (2 <= n <= 1000) in a line. Then follows n lines, each consists of two integers x y (1 <= xy <= 105) representing a point.

    Cases are separated by one blank line.

    Output

    For each case, output the answer in a line, keep 1 digit after the decimal point.

    Sample Input

    2
    3
    1 1
    2 2
    3 3
    
    3
    1 2
    4 1
    2 5
    

    Sample Output

    4.5
    10.0

    给n个点,x固定,但是y可以随意变动,现在要求以这些点往x轴做垂直,构成m个梯形,这些梯形的最大面积是多少
    对于第一个点,只可能是与x[1]-x[0]的长度构成高,同理,对于最后一点也只能与x[n]-x[n-1]构成
    但是对于中间的点,都是x[n]-x[n-2]的高度差。所以我们可以将高度差先计算出来,经排序之后再与排序好的y相乘即可
    View Code
     1 #include <cstdio>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 const int N=1010;
     6 int main()
     7 {
     8     double x[N],y[N],ans[N],sum;
     9     int t,n,i;
    10     scanf("%d",&t);
    11     while(t--)
    12     {
    13         scanf("%d",&n);
    14         for(i=0;i<n;i++)
    15             scanf("%lf%lf",&x[i],&y[i]);
    16         sort(x,x+n);
    17         sort(y,y+n);
    18         ans[0]=x[1]-x[0];
    19         ans[n-1]=x[n-1]-x[n-2];
    20         for(i=1;i<=n-2;i++)
    21             ans[i]=x[i+1]-x[i-1];
    22         sort(ans,ans+n);
    23         for(i=0,sum=0;i<n;i++)
    24             sum+=ans[i]*y[i];
    25         printf("%.1lf\n",sum/2.0);
    26     }
    27     return 0;
    28 }
  • 相关阅读:
    jquery内容过滤器
    jquery的each()
    jquery表单过滤器
    jquery评分星星
    UVa 1595 Symmetry (set && math)
    UVa 1592 Database (map)
    Codeforces 886E Maximum Element 组合数学 + dp
    Codeforces 725E Too Much Money (看题解)
    可持久化字典树
    Codeforces 660F Bear and Bowling 4 斜率优化 (看题解)
  • 原文地址:https://www.cnblogs.com/wilsonjuxta/p/2963783.html
Copyright © 2020-2023  润新知