zoukankan      html  css  js  c++  java
  • [叉积][枚举]JZOJ 3190 蓄养

    传送门

    Description
    平面上有N颗树,标号从1到N,每颗树有坐标(Xi, Yi)。要求在平面上找几棵树,在一些树之间建篱笆形成一个闭合图形
    (篱笆不能在除了树以外的地方相交,形成的图形面积不能为0).求最小可能围成的面积。

    题解

    当我看到n<=100时 露出了一个意味深长的笑容
    其实就是n^3枚举
    用差积求出面积,取最大值
    

    代码

    #include<cstdio>
    #include<iostream>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int n;
    long double x[110],y[110],ans;
    int main()
    {
        scanf("%d",&n);
        ans=1000000000000;
        for (int i=1;i<=n;i++) scanf("%llf%llf",&x[i],&y[i]);
        for (int i=1;i<=n-2;i++)
            for (int j=i+1;j<=n-1;j++)
                for (int k=j+1;k<=n;k++)
                {
                    long double s=abs((x[j]-x[i])*(y[k]-y[i])-(y[j]-y[i])*(x[k]-x[i]))/2;
                    if (s!=0) ans=min(ans,s);
                }
        if (n<3||ans==500000000000) printf("Impossible"); else printf("%0.2llf",ans);
    }
  • 相关阅读:
    初识DJango框架
    web框架基础
    前端——JavaScript
    前端——css(下)
    前端——css(上)
    前端——html
    spring注解
    spring boot 详解(1)spring boot +mybatis+mysql+jsp
    spring 事务控制
    maven pom文件管理
  • 原文地址:https://www.cnblogs.com/Comfortable/p/8412243.html
Copyright © 2011-2022 走看看