codeforces 957 C Three-level Laser
题意:
说的是一个电子云的三种状态,但是这不重要。
简单来说,就是在一个升序的序列中找三个数x,y,z,x和z的值之差不超过u,然后使得(z – y) / (z – x)最大。
思路:
使得(z – y)/(z – x)最大,那么y与x要尽量接近,并且z – x尽量大,一个比较显然的例子是8/9大于7/8。
对于每一个x,紧邻它的下一个数就是y,然后二分查找最大的小于等于x+u的数字,然后取(z – y) / (z – x)的最大值。
我的失误在于考虑到了最后可能x与z相等,但是没有考虑到y与z也可能相等,这是思维不严谨的地方,mark!
代码:
#include <stdio.h>
#include <string.h>
#include <set>
#include <algorithm>
#include <vector>
using namespace std; vector<int> v; int main()
{
int n,d; scanf("%d%d",&n,&d); double ans = -; for (int i = ;i < n;i++)
{
int x;
scanf("%d",&x);
v.push_back(x);
} for (int i = ;i < n - ;i++)
{
int x = v[i],y = v[i+]; int p = lower_bound(v.begin(),v.end(),x+d) - v.begin(); if (p == n) p--;
while (v[p] > x + d) p--; int z = v[p]; if (x >= z || y >= z) continue; double tmp = 1.0 * (z - y) / (z - x); //printf("%d %d %d\n",x,y,z); ans = max(ans,tmp);
} if (ans < ) printf("-1");
else printf("%.11f",ans); return ;
}
codeforces 957 C Three-level Laser的更多相关文章
- 【codeforces 731D】80-th Level Archeology
[题目链接]:http://codeforces.com/contest/731/problem/D [题意] 给你n个象形文; 每个象形文由l[i]个数字组成; 你可以把所有的组成象形文的数字同时增 ...
- codeforces 957 A. Tritonic Iridescence
题意: 给出一个字符串,要求任意两个相同的字母不能相同,问这个字符串是否能有两种或者两种以上的表现形式. 思路: 简单判断一下: 1.问号在端点: 2.连续两个问号或者以上: 3.一个问号两端的字母是 ...
- Codeforces 957 水位标记思维题
A #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #def ...
- [Linux] pwm设备驱动调试
转载请注明出处:https://www.cnblogs.com/lialong1st/p/11436190.html CPU:RK3288 系统:Linux 客户需求是通过 pwm 控制激光的强弱,写 ...
- Codeforces Round #376 (Div. 2) D. 80-th Level Archeology —— 差分法 + 线段扫描法
题目链接:http://codeforces.com/contest/731/problem/D D. 80-th Level Archeology time limit per test 2 sec ...
- [Codeforces Round472C] Three-level Laser
[题目链接] https://codeforces.com/contest/957/problem/C [算法] 二分 注意精度问题 时间复杂度 :O(NlogN) [代码] #include< ...
- Codeforces 847I - Noise Level
847I - Noise Level 思路:bfs. 代码: #include<bits/stdc++.h> using namespace std; #define ll long lo ...
- Codeforces 15B Laser
题目链接:点击打开链接 #include<stdio.h> #include<iostream> #include<string.h> #include<se ...
- [Lyft Level 5 Challenge 2018 - Elimination Round][Codeforces 1033D. Divisors]
题目链接:1033D - Divisors 题目大意:给定\(n\)个数\(a_i\),每个数的约数个数为3到5个,求\(\prod_{i=1}^{n}a_i\)的约数个数.其中\(1 \leq n ...
随机推荐
- 《mongoDB》概念-数据类型
一:概念 - mongoDB 是一个面向文档的数据库,而不是关系型数据库. - 摘自<mongoDB 权威指南 第2版>第3页 二:数据类型 - null - 用于表示空值或者不存在的字段 ...
- falsk 与 django 过滤器的使用与区别
1,flask中内置的过滤器模板中常用方法: {#过滤器调用方式{{变量|过滤器名称}} #} <!-- safe过滤器,可以禁用转义 --> {{'<strong>hello ...
- rem设置
html{ font-size:10vw; }
- java Arrays工具
package cn.sasa.demo4; import java.util.Arrays; public class ArrayDemo { public static void main(Str ...
- 【PyQt5-Qt Designer】对话框系列
标准输入对话框(QInputDialog)系列: 主要模块 from PyQt5.QtWidgets import QInputDialog 效果如下: 完整代码: from PyQt5.QtWidg ...
- Linux中的轻量级进程
在Linux中,轻量级进程可以是进程,也可以是线程.我们所说的线程,在Linux中,其实是轻量级进程之间共享代码段,文件描述符,信号处理,全局变量时: 如果不共享,就是我们所说的进程. 进程是资源管理 ...
- document数据路由
(1)document数据路由的理解:我们知道,一个index的数据会被分为多片,每片都在一个shard中,所以说,一个document,只能存在于一个shard中.当客户端创建document的时候 ...
- 【托业】【新东方全真模拟】01~02-----P5~6
12.precisely precise precision preciseness 114. 116. favorable adj.赞同的; 称赞的; 有利的; 讨人喜欢的; favor n.好感; ...
- 【托业】【新托业TOEIC新题型真题】学习笔记4-题库一->P7
--------------------------------------单词-------------------------------------- reimbursement n. 报销:偿 ...
- 字符集更改步骤,mysql乱码
关键字:Mysql乱码,mysql字符集修改 #字符集更改步骤~