zoukankan      html  css  js  c++  java
  • 【51NOD】斜率最大

    【题解】通过画图易得结论:最大斜率一定出现在相邻两点之间。

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    const int maxn=10010;
    const double eps=1e-6;
    struct cyc{int x,y,ord;}a[maxn];
    int b[maxn],n;
    bool cmp(cyc a,cyc b)
    {return a.x<b.x;}
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++){scanf("%d%d",&a[i].x,&a[i].y);a[i].ord=i;}
        sort(a+1,a+n+1,cmp);
        int tot=0;
        double ans=0;
        for(int i=1;i<n;i++)
        {
            double anss=(a[i+1].y-a[i].y)/(a[i+1].x-a[i].x);
            if(anss>ans)ans=anss,tot=0;
            if(anss+eps>ans&&anss-eps<ans)b[++tot]=i;
        }
        for(int i=1;i<=tot;i++)
        {
            printf("%d %d
    ",a[b[i]].ord,a[b[i]+1].ord);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    软件原则
    Optional
    雪花算法原理
    AOP
    trycatchfinally
    lambda表达式
    BeanUtils属性转换工具
    @Transactional 失效
    用户线程&&守护线程
    卡顿问题
  • 原文地址:https://www.cnblogs.com/onioncyc/p/7053696.html
Copyright © 2011-2022 走看看