二分思想,对所要花费的时间进行二分,再以模拟的形式进行验证是否可行。

使用二分法,可以将一个求最优解的问题转化为一个判定问题,优雅的暴力。

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>
#include<queue>
#include<vector>
#include<cmath>
#include<utility>
using namespace std;
typedef long long LL;
const int N = 1008, INF = 0x3F3F3F3F;
#define MS(a, num) memset(a, num, sizeof(a))
#define PB(A) push_back(A)
#define FOR(i, n) for(int i = 0; i < n; i++)
int n, k;
double dis, v1, v2; bool check(double m){
double ti = 0;
int tot = n / k;
if(n % k){
tot++;
}
for(int i = 0; i < tot; i++){
double rem = dis - ti * v1;
if(rem <= (m - ti) * v1){
return true;
}
double len = v1 * (m - ti);
double t2 = (rem - len) / (v2 - v1);
ti += t2;
if(i != tot - 1){
double l2 = rem - len;
ti += l2 / (v1 + v2);
}
if(ti > m){
return false;
} }
return true;
}
int main(){
cin>>n>>dis>>v1>>v2>>k;
if(k >= n){
printf("%.10f\n", dis / v2);
}else{
double l = dis / v2;
double r = dis / v1; for(int i = 0; i < 100; i++){
double m = (l + r)/2;
if(check(m)){
r = m;
}else{
l = m;
}
}
printf("%.10f\n", l);
} return 0;
}

  

最新文章

  1. Lua学习笔记一
  2. 删除ibus之后导致系统设置进不了
  3. Java for LeetCode 067 Add Binary
  4. 一个快速、完善的Android开发框架整合实践(QuickAndroid)
  5. SSH proxy
  6. algorithm@ find the shortest path in a graph using BFS
  7. &quot;ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效&quot;的快速解决方法
  8. bzoj3864: Hero meet devil
  9. HTML5和CSS3实例教程[总结一]
  10. [置顶] C++基础之六:运算符的重载
  11. 哈希长度扩展攻击的简介以及HashPump安装使用方法
  12. Windows Phone开发(17):URI映射
  13. Windows 黑屏问题
  14. docker run 之后执行多条命令
  15. 编码原则 之 Once and Only Once
  16. 如何成功打造一款中台(PaaS)产品
  17. configure - 源代码安装的第一步
  18. 用C自撸apache简易模块,搭建图片处理服务器。
  19. go标准库的学习-mime/multipart
  20. ASP.NET WebAPI构建API接口服务实战演练

热门文章

  1. 常见的MYSQL高可用解决方案
  2. Appium 服务器参数
  3. 二叉树节点个数题目[n0,n1,n2]
  4. iOS UIViewController 和 nib 相关的3个方法
  5. [ 转]Collections.unmodifiableList方法的使用与场景
  6. STL:原地归并排序模板(InplaceMergeSort)
  7. WebService及WCF获取客户端IP,端口
  8. codeforces Educational Codeforces Round 5 A. Comparing Two Long Integers
  9. c/c++与Python的语法差异
  10. 自定义tld标签,页面使用