博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva 11627
阅读量:4709 次
发布时间:2019-06-10

本文共 1250 字,大约阅读时间需要 4 分钟。

二分

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define maxn 100010#define INF 0x7fffffff#define inf 10000000#define MOD 1000000007#define ull unsigned long long#define ll long longusing namespace std;struct node{ int x, y;};node houge[maxn];int n, v, w, s[maxn*10], m;bool ok(int mid){ double st = houge[0].x, en = houge[0].x+w; for(int i = 1; i < n; ++ i) { double len = (double)(houge[i].y-houge[i-1].y)/s[mid]*v; st -= len; en += len; st = max(st, (double)houge[i].x); en = min(en, (double)houge[i].x+w); if(st > en+1e-6) return false; } return true;}int solve(){ int ans = -1; int rig = 0, le = m; while(rig < le) { int mid = rig + (le-rig)/2; if(ok(mid)) { rig = mid+1; ans = mid; } else le = mid; } return ans;}int main(){ int t; scanf("%d", &t); while(t --) { scanf("%d%d%d", &w, &v, &n); for(int i = 0; i < n; ++ i) scanf("%d%d", &houge[i].x, &houge[i].y);; scanf("%d", &m); for(int i = 0; i < m; ++ i) scanf("%d", &s[i]); sort(s, s+m); int ans = solve(); if(ans != -1) printf("%d\n", s[ans]); else puts("IMPOSSIBLE"); } return 0;}

转载于:https://www.cnblogs.com/avema/p/3774177.html

你可能感兴趣的文章
【PAT】B1047 编程团体赛(20 分)
查看>>
iPad软件提交注意事项
查看>>
约束和异常处理
查看>>
css 布局
查看>>
RESTful风格化
查看>>
C# 多线程学习系列二
查看>>
如何将你的github仓库部署到github pages(转)
查看>>
几个重要的shell命令:diff patch tar find grep
查看>>
学习笔记
查看>>
JS ES6 -- let命令
查看>>
查找空座位问题
查看>>
几个简单规则改进你的SEO效果
查看>>
UVA10820 Send a Table
查看>>
主流css reset的讲解分析(转载)
查看>>
OpenCV4Android Tutorial0解析
查看>>
Oracle数据库(一)
查看>>
SVD与文本摘要
查看>>
HDU 5451 广义斐波那契数列
查看>>
mysql5.6配置文件my.ini位置
查看>>
[BZOJ4820][SDOI2017]硬币游戏(高斯消元+KMP)
查看>>