首页 > 其他分享 >最大三角形

最大三角形

时间:2024-03-21 18:23:13浏览次数:16  
标签:node 最大 int double top cal poi 三角形

原题链接

题解

选的点一定是凸包上的点?

code

#include<bits/stdc++.h>
using namespace std;
struct poi
{
    double x,y;
}node[50005];
int q[100005];

double cal(int a,int b,int c)
{
    double x1=node[a].x-node[b].x,y1=node[a].y-node[b].y,x2=node[b].x-node[c].x,y2=node[b].y-node[c].y;
    return x1*y2-x2*y1;
}

bool cmp(poi a,poi b)
{
    if(a.x!=b.x) return a.x<b.x;
    return a.y>b.y;
}

int main()
{
    int n;
    while(cin>>n)
    {
        for(int i=1;i<=n;i++) cin>>node[i].x>>node[i].y;

        sort(node+1,node+1+n,cmp);//排序忘了,老是tle
        int top=0;
        for(int i=1;i<=n;i++)
        {
            while(top>1&&cal(i,q[top],q[top-1])<0) top--;
            q[++top]=i;
        }
        int top1=top;

        for(int i=n-1;i>=1;i--)
        {
            while(top>top1&&cal(i,q[top],q[top-1])<0) top--;
            q[++top]=i;
        }


        double ans=0;
        for(int i=1;i<top;i++)
            for(int j=i+1;j<top;j++)
                for(int k=j+1;k<top;k++)
                    ans=max(ans,abs(cal(q[i],q[j],q[k])));

        printf("%.2lf\n",ans*0.5);
    }
    return 0;
}

标签:node,最大,int,double,top,cal,poi,三角形
From: https://www.cnblogs.com/pure4knowledge/p/18087988

相关文章

  • 代码随想录算法训练营第五十三天 | 53. 最大子序和 动态规划,1035.不相交的线,1143.最
    53.最大子数组和 已解答中等 相关标签相关企业 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。  示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]......
  • 根据原图,计算一个宽或高最大100的图片的计算方法
    constpreviewImageRatio=previewImageWidth/previewImageHeight;//原图宽高比例letthumbnailHeight,thumbnailWidth;//缩略图高和宽if(previewImageRatio>1){thumbnailWidth=100;......
  • ClickHouse最大QPS到底咋估算?
    ClickHouse是用于分析的OLAP数据库,因此典型的使用场景是处理相对较少的请求—从每小时几个到每秒几十甚至几百个不等—但会影响到大量数据(几GB/数百万行)。但是在其他情况下,它的表现如何?让我们尝试用大量小请求来测试ClickHouse如何处理。这将帮助我们更好地了解可能的使用场......
  • LeetCode-滑动窗口最大值
    """题目来源https://leetcode.cn/problems/sliding-window-maximum/"""fromcollectionsimportdequeclassSolution(object):defmaxSlidingWindow(self,nums,k):#记录所有区间长度为k的最大值ans=[]#单调递减队列,从队首......
  • 2024年 智能机器人元年 —— 国内的智能机器人(humanoid)公司当下最大的压力(最为急迫的
    可以说,2024年是人形机器人的元年。我国在去年年底将发展智能机器人立为了第一线的重要科技发展方向,并计划在2024年、2025年建立出完整的产业链条,并培育出几家成熟的行业领先的智能机器人公司。而我们把目标从国内移向国外,我们可以看到国外也是同样将这个发展方向定位了首要发展方......
  • R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证
    全文链接:http://tecdat.cn/?p=31162最近我们被客户要求撰写关于SV模型的研究报告,包括一些图形和统计输出。本文做SV模型,选取马尔可夫蒙特卡罗法(MCMC)、正则化广义矩估计法和准最大似然估计法估计。模拟SV模型的估计方法:  sim<-svsim(1000,mu=-9,phi=0.97,sigma......
  • 代码随想录算法训练营第十三天|239. 滑动窗口最大值、347.前 K 个高频元素、总结
    题目:239.滑动窗口最大值文章链接:代码随想录视频链接:LeetCode:239.滑动窗口最大值题目链接:力扣题目链接图释:classSolution{public://自己定义一个优先队列classMyQueue{public: deque<int>deq; //弹出 voidpop(intvalue){ //当输入的数组与队顶......
  • Go语言实现时间滑动窗口算法 动态计算增加量、最大值、最小值
    //时间窗口varfiveMinAccMap=NewAccumulatorsMap(5*time.Minute)vartenMinAccMap=NewAccumulatorsMap(10*time.Minute)varfifteenMinAccMap=NewAccumulatorsMap(15*time.Minute)varthirtyMinAccMap=NewAccumulatorsMap(30*time.Minute)varoneHourAccM......
  • 51nod1174 区间中最大的数RMQ
    给出一个有n个数的序列,下标0~n-1,有Q次查询,每次询问区间[l,r]的最大值。如果有修改,可以考虑线段树,这里只有静态查询,可以用ST表,预处理时间O(nlogn),单次查询时间O(1)。#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#definerep(i,a,b)for(inti=a;i<=b;i......
  • 三角形的各种线的向量刻画 | 难点
    前言三角形中的各种常用的线段,若换用向量形式的符号语言来刻画,则大多学生可能会极度恐惧,因此有必要将三角形中常用的各种线段的向量表示形式好好作以总结储备。常用结论1、与非零向量\(\vec{a}\)共线的单位向量\(\vec{a_0}\)为两个,\(\vec{a_0}=\pm\cfrac{\vec{a}}{|\vec{a}......