题目

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2674

题意

有严格下降的n条线段,长度都为w,第i条线段起点xi,终点xi + w,高度yi,现在有s种垂直恒定速度可以选择,水平速度不能超过vh,问要经过每条线段,垂直恒定速度最大可以选择什么

思路

明显,二分枚举速度speed

第一条线段因为是起点所以肯定都能到达

对于第i条线段,从第i-1条线段出发落到i条线段相同高度所用时间为t = (yi - y_{i - 1}) / speed,设能到达的区域为[xlefttruei, xrighttruei],能到达的区域为[xlefttrue_{i-1}- vh * t, xrighttrue_{i-1} + vh * t]与自身线段[xi, xi + w]的交集,如果不存在这个交集,就代表落不到这个线段上。

感想:

现在uva无法通过,包括他人题解注明已通过的也不行

代码

#include <algorithm>
#include <cassert>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <string>
#include <tuple>
#define LOCAL_DEBUG
using namespace std;
const int MAXN = 1e5 + 5;
const int MAXS = 1e6 + 6;
long long xleft[MAXN];
long long y[MAXN];
long long w, vh;
int n, s;
long long xlefttrue[MAXN], xrighttrue[MAXN];
int speeds[MAXS];
bool check(int speed) {xlefttrue[0] = xleft[0] * speed;xrighttrue[0] = (xleft[0] + w) * speed;for (int i = 1; i < n; i++) {long long t = (y[i] - y[i - 1]);xlefttrue[i] = max(xleft[i] * speed, xlefttrue[i - 1] - t * vh);xrighttrue[i] = min((xleft[i] + w) * speed, xrighttrue[i - 1] + t * vh);if (xlefttrue[i] > xrighttrue[i])return false;}return true;
}int main() {
#ifdef LOCAL_DEBUGfreopen("C:\\Users\\Iris\\source\\repos\\ACM\\ACM\\input.txt", "r", stdin);//freopen("C:\\Users\\Iris\\source\\repos\\ACM\\ACM\\output.txt", "w", stdout);
#endif // LOCAL_DEBUGint T;cin >> T;for (int ti = 1;ti <= T; ti++) {cin >> w >> vh >> n;for (int i = 0; i < n; i++) {cin >> xleft[i] >> y[i];}cin >> s;for (int i = 0; i < s; i++) {cin >> speeds[i];}sort(speeds, speeds + s);int lind = 0, rind = s;if (!check(speeds[lind]))cout << "IMPOSSIBLE" <<endl;else {while (lind < rind) {int mid = (lind + rind) >> 1;if (mid == lind)break;if (check(speeds[mid])) {lind = mid;}else {rind = mid;}}cout << speeds[lind] << endl;}}return 0;
}

View Code

转载于:https://www.cnblogs.com/xuesu/p/10470874.html

UVa 11627 - Slalom 二分. oj错误题目 难度: 0相关推荐

  1. UVa LA 4253 UVa 1421 Archery 枚举,状态削减,oj错误题目 难度: 1

    题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...

  2. UVA 11627 Slalom(二分)

    二分,判断的时候,一个点一个点的考虑肯定是不行啦,考虑的单位是一个区间, 每次左端点尽量向左边移动,右端点尽量向右,得到下次可以达到的范围,检查一下和下一个区间有没有交集. #include<b ...

  3. python 难度-Python分析 oj 网的题目难度和通过率的关系

    本着做题的心态,上了东莞理工学院的 oj 网:看了一下题目不想动手,在选择难度的时候发现有些题目通过率和难度可能存在着某些关系,于是决定爬下这些数据简单查看一下是否存在关系. 一.新建项目 我是用 S ...

  4. 紫书 例题8-10 UVa 714 (二分答案)

    这道题让最大值最小, 显然是二分答案 当题目求的是最大值最小, 最小值最大, 这个时候就要想到二分答案 为什么可以二分答案呢, 因为这个时候解是单调性的, 如果简单粗暴一点 就全部枚举一遍, 验证答案 ...

  5. A+B 问题【OJ 示例题目】

    A+B 问题[OJ 示例题目] 题目描述 欢迎开启算法 OJ 题的大门,本题为经典的 A+BA+B 入门题,我们会以此题为示例介绍蓝桥云课 OJ 系统的正确使用方法. 问题描述 输入两个正整数 A,B ...

  6. 杭电OJ分类题目(4)-Graph

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...

  7. 杭电OJ分类题目(3)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(3) HDU Computational Ge ...

  8. 杭电OJ分类题目(2)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...

  9. 杭电OJ分类题目(1)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(1) HDU Introduction HDU ...

最新文章

  1. 从Demo到日千万PV,就是快! – 爱线下的上云实践
  2. LaTeX技巧24:LaTeX常用命令集锦
  3. html number方法,JavaScript Number 对象
  4. 深度学习 训练吃显卡_在深度学习中喂饱GPU
  5. Java的内存--存储
  6. java可变长字符串类型,Java 常用类——StringBufferamp;StringBuilder【可变字符序列】_IT技术_软件云...
  7. 【Floyed】【最短路】商店选址问题(ssl 1760)
  8. 华为交换机命令_华为交换机常用命令
  9. 汉语编程-现存的可能误区及可能方向思考
  10. 美国自动驾驶研发国家队NASA入局,还提供了航天跑道做测试
  11. C++指针delete后赋值为NULL的一些问题
  12. vs2010旗舰版产品密钥
  13. 电阻阻值换算关系和色环电阻度数
  14. 如何实现2019新年愿望:梦想还是要有的,但不能靠“万一实现了呢
  15. 金蝶服务器修改ip,金蝶客户端修改服务器ip地址
  16. 5.5 Go语言项目实战:多人聊天室
  17. EC智能电池信息读取
  18. vue项目引入icon图标
  19. 新冠病毒又变种了, Lambda病毒比Delta病毒更危险
  20. 华擎主板bios设置图解_主板BIOS界面解析_华擎 Z170 极限玩家 7+_主板-中关村在线...

热门文章

  1. 无界,wujie的使用
  2. 关于态势感知及指控系统的思考
  3. 365天英语口语学习_20,看电视
  4. Managing Audio Playback
  5. bootstrap栅格系统
  6. DBR(分区引导扇区)
  7. ProtoBuf lite版中使用Any
  8. 使用营销收款码实现共享餐厅,门店营销码快速解决客源问题
  9. java 调用多次_关于java:Mockito可以捕获多次调用方法的参数吗?
  10. php商城微信提现,PHP实现微信提现(企业付款到零钱)