51Nod - 1100 斜率最大

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51Nod - 1100 斜率最大相关的知识,希望对你有一定的参考价值。

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn=10005;
struct point
{
    double x;
    double y;
    int ipos;
};//斜率最大的两个点,一定相邻
double iMatr=-100;
bool cmp(point a,point b)
{
    return a.x<b.x;
}
double getMatr(point a,point b)
{
    return 1.0*(b.y-a.y)/(b.x-a.x);
}
int main()
{
    point p[maxn];
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
       scanf("%lf%lf",&p[i].x,&p[i].y);
       p[i].ipos=i;
    }
    sort(p+1,p+1+n,cmp);//排序
    point Ta,Tb;
    for(int i=1;i<=n-1;i++)
    {
        if(getMatr(p[i],p[i+1])>iMatr)
        {
            iMatr=getMatr(p[i],p[i+1]);
                Ta=p[i];
                Tb=p[i+1];
        }
    }
    printf("%d %d\n",Ta.ipos,Tb.ipos);
}

  

以上是关于51Nod - 1100 斜率最大的主要内容,如果未能解决你的问题,请参考以下文章

51Nod P1100 斜率最大

51nod 1100 斜率最大

51nod1100(计算几何)

51NOD斜率最大

51nod 1451 合法三角形 判斜率去重,时间复杂度O(n^2)

51NOD——N 1107 斜率小于0的连线数量