题目链接:

https://jzoj.net/senior/#main/show/5885

题目:

题解:

把$a$数组按升序排序

我们可以枚举$x$,发现对于任意$x$,最优情况下$y$一定等于$x+1$

那么我们就是在一直$x$和$y$的前提下找$z$

可以证明,在合法范围内,计算结果随着$a_z$的增大而单调增

证明就是化简一下这个式子$\frac{a_{z+1}-a_y}{a_{z+1}-a_x}>\frac{a_z-z_y}{a_z-a_x}(a_{z+1}>a_z>a_y>a_x)$,发现是正确的。反之如果是小于号就是不正确的

但是我写的代码它WA了,A掉的代码比我多一句话。但是我查看了结果发现我的输出没有错,和AC代码对拍也没有毛病,当然精度也没有问题...我觉得是OJ出了锅

下面是我的代码

#include<algorithm>
#include<cstring>
#include<cstdio>
#include<iostream>
using namespace std; const int N=1e5+;
int n,T;
long double ans;
double m;
double a[N];
int main()
{
freopen("atom.in","r",stdin);
freopen("atom2.out","w",stdout);
scanf("%d",&T);
while (T--)
{
scanf("%d%lf",&n,&m);ans=-;
for (int i=;i<=n;i++) scanf("%lf",a+i);
sort(a+,a++n);
int id=;
for (int i=;i<n-;i++)
{
for (id=max(id,i+);id<n&&a[id+]-a[i]<=m;id++);
if (a[id]-a[i]<=m) ans=max(ans,(long double)(a[id]-a[i+])/(a[id]-a[i]));
}
if (ans==-) puts("-1");
else printf("%.13lf\n",(double)ans);
}
return ;
}

最新文章

  1. jquery 解析数据库中的json日期为正常的格式
  2. [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(二)
  3. 使用SQL循环打印&#39;*&#39;菱形
  4. 编写优质嵌入式C程序
  5. 以路由控制URL
  6. Struts1.x教程:配置文件总结
  7. ajax 注册
  8. tomcat设置直接通过域名访问项目(不需要接 /项目名)
  9. java接口自动化基础知识(一)
  10. html入门1
  11. [转载]DevOps在传统企业的落地实践及案例分享
  12. VSCode里面HTML添加CSS时没有提示
  13. Python学习(二十) —— 前端之CSS
  14. PAT A1020 Tree Traversals (25 分)——建树,层序遍历
  15. 【APUE | 08】进程控制
  16. angular2.0学习笔记1.开发环境搭建 (node.js和npm的安装)
  17. from __future__ import
  18. ActiveMQ demo
  19. IntelliJ IDEA 在运行web项目时部署的位置
  20. Rails中实现批量删除

热门文章

  1. 英语发音规则---T字母
  2. Linux平台Oracle多个实例启动说明
  3. 子线程中刷新了UI
  4. springMVC、mybatis实现的登录页面(maven)
  5. ROS-参数
  6. Linux目录结构(一)
  7. .NET中的异步操作及线程同步
  8. Maintain Aspect Ratio Mixin
  9. 博客移至 GitHub
  10. 动态库连接器–动态库链接信息(Mach-O文件格式和程序从加载到执行过程)