posts - 0,comments - 0,trackbacks - 0
证明一个东西
如果a,b之间还有c的话,那么如果c在ab下方,Kcb>Kab,c在ab上方Kac>Kab ,就是说斜率最大的一定在相邻两点产生。
那么算法就很明显了。。又是丑陋的穷举。。
有个细节要注意 考虑到负数的存在 最好开INT64(maxlongint-(-maxlongint)会悲剧)。
#include<stdio.h>
__int64 v[
100001];
long i,n,jl;
__int64 ans,k,a,b;
int main()
{
  scanf(
"%ld",&n);
  
for (i=1;i<=n;i++)
    scanf(
"%I64d",&v[i]);
  ans
=v[2]-v[1];jl=2;
  
for (i=3;i<=n;i++)
  {
    k
=v[i]-v[i-1];
    
if (k<0)
      k
=-k;
    
if (k>ans)
    {
      ans
=k;
      jl
=i;
    }
  }
  printf(
"%ld %ld",jl-1,jl);
}

posted on 2011-06-27 17:36 梦转千寻 阅读(52) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理