二分

  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <cmath>
  4. #include <map>
  5. #include <set>
  6. #include <queue>
  7. #include <stack>
  8. #include <vector>
  9. #include <sstream>
  10. #include <string>
  11. #include <cstring>
  12. #include <algorithm>
  13. #include <iostream>
  14. #define maxn 100010
  15. #define INF 0x7fffffff
  16. #define inf 10000000
  17. #define MOD 1000000007
  18. #define ull unsigned long long
  19. #define ll long long
  20. using namespace std;
  21.  
  22. struct node
  23. {
  24. int x, y;
  25. };
  26.  
  27. node houge[maxn];
  28. int n, v, w, s[maxn*10], m;
  29.  
  30. bool ok(int mid)
  31. {
  32. double st = houge[0].x, en = houge[0].x+w;
  33. for(int i = 1; i < n; ++ i)
  34. {
  35. double len = (double)(houge[i].y-houge[i-1].y)/s[mid]*v;
  36. st -= len;
  37. en += len;
  38. st = max(st, (double)houge[i].x);
  39. en = min(en, (double)houge[i].x+w);
  40. if(st > en+1e-6) return false;
  41.  
  42. }
  43. return true;
  44. }
  45.  
  46. int solve()
  47. {
  48. int ans = -1;
  49. int rig = 0, le = m;
  50. while(rig < le)
  51. {
  52. int mid = rig + (le-rig)/2;
  53. if(ok(mid))
  54. {
  55. rig = mid+1;
  56. ans = mid;
  57. }
  58. else le = mid;
  59. }
  60. return ans;
  61. }
  62.  
  63. int main()
  64. {
  65. int t;
  66. scanf("%d", &t);
  67. while(t --)
  68. {
  69. scanf("%d%d%d", &w, &v, &n);
  70. for(int i = 0; i < n; ++ i) scanf("%d%d", &houge[i].x, &houge[i].y);;
  71. scanf("%d", &m);
  72. for(int i = 0; i < m; ++ i) scanf("%d", &s[i]);
  73. sort(s, s+m);
  74. int ans = solve();
  75. if(ans != -1) printf("%d\n", s[ans]);
  76. else puts("IMPOSSIBLE");
  77. }
  78. return 0;
  79. }

uva 11627的更多相关文章

  1. UVa 11627 - Slalom 二分. oj错误题目 难度: 0

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

  2. UVA 11627 Slalom(二分)

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

  3. UVa (二分) 11627 Slalom

    题意: 有宽度相同的水平的n个旗门,水平(纵坐标严格递增)滑行的最大速度为Vh(水平速度可以任意调节).然后还有S双滑雪板,每双滑雪板的垂直速度一定. 然后求能通过的滑板鞋的最大速度. 分析: 显然, ...

  4. uva 1354 Mobile Computing ——yhx

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5

  5. UVA 10564 Paths through the Hourglass[DP 打印]

    UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...

  6. UVA 11404 Palindromic Subsequence[DP LCS 打印]

    UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...

  7. UVA&&POJ离散概率与数学期望入门练习[4]

    POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...

  8. UVA计数方法练习[3]

    UVA - 11538 Chess Queen 题意:n*m放置两个互相攻击的后的方案数 分开讨论行 列 两条对角线 一个求和式 可以化简后计算 // // main.cpp // uva11538 ...

  9. UVA数学入门训练Round1[6]

    UVA - 11388 GCD LCM 题意:输入g和l,找到a和b,gcd(a,b)=g,lacm(a,b)=l,a<b且a最小 g不能整除l时无解,否则一定g,l最小 #include &l ...

随机推荐

  1. BeanDefinition的Resource定位——3

    1.我们重点看看AbstractRefreshableApplicationContext的refreshBeanFactory方法的实现,这个refreshBeanFactory被FileSyste ...

  2. 兄台息怒,关于arguments,您的想法和大神是一样一样的----闲聊JS中的apply和call

    JavaScript提供了apply和call两种调用方式来确定函数体中this的指向,表现出来的特征就是:对象可以'借用'其他对象的方法.之前的几篇博客回顾了一些Web控件的一些开发方法,我们聊了如 ...

  3. 你应该知道的9个优秀的CSS框架

    前端开发是一项非常繁琐的工作,你不仅需要拥有和别人不一样的审美观和设计观,而且需要了解诸如HTML.CSS.JavaScript等错综复杂的技术,因此选择一些优秀的CSS框架或许可以帮助你大大提高工作 ...

  4. 数值积分NIntegrate中的具体算法

    数值积分方法很多,Mathematica中至提供了NIntegrate.具体算法可参照官方帮助. http://reference.wolfram.com/language/tutorial/NInt ...

  5. 向CodeBlocks的Project中添加calss文件时,出现No such file or directory错误的解决方案

    我们在CodeBlocks中编写程序时,一般要建立工程.现在建立工程first,然后建立类文件Person,并将其添加到first中, int main() { Person p; p.display ...

  6. Tables for condition techniques

    T682i  -- Access sequence and the tables   T685  -- Condition types and Access sequences   T683s  -- ...

  7. 一个Ctrl+V下的问题

    对于电脑快捷键来说恐怕没什么比Ctrl+C和Ctrl+V更熟悉的了. 最近做了一个小程序,界面上有一个文本框,要做的事情就是把从别的地方复制内容后粘贴到文本框中,然后以自己处理后的格式显示出来. 为了 ...

  8. python:执行一个命令行N次

    经常希望可以执行一个命令行N次...windows下没有现成的工具(有?推荐给我!) 用python写一个... #!/usr/bin/evn python #coding: utf-8 " ...

  9. posix 消息队列

    注意 在涉及到posix消息的函数时, gcc 编译时要加-lrt参数, 如 gcc -lrt unpipc.c mqpack.c send.c -o send gcc -lrt unpipc.c m ...

  10. ssh-keygen实现免密码登陆

    在 Client 端建立 Public 与 Private Key : 建立的方法真的是简单到不行!直接在 192.168.0.100 这个 Client 上面,以 test2 这个账号,使用 ssh ...