Codeforces Round #499 (Div. 2) C. Fly(数学+思维模拟)
1 second
256 megabytes
standard input
standard output
Natasha is going to fly on a rocket to Mars and return to Earth. Also, on the way to Mars, she will land on n−2n−2 intermediate planets. Formally: we number all the planets from 11 to nn. 11 is Earth, nn is Mars. Natasha will make exactly nn flights: 1→2→…n→11→2→…n→1.
Flight from xx to yy consists of two phases: take-off from planet xx and landing to planet yy. This way, the overall itinerary of the trip will be: the 11-st planet →→ take-off from the 11-st planet →→ landing to the 22-nd planet →→ 22-nd planet →→ take-off from the 22-nd planet →→ …… →→ landing to the nn-th planet →→ the nn-th planet →→ take-off from the nn-th planet →→ landing to the 11-st planet →→ the 11-st planet.
The mass of the rocket together with all the useful cargo (but without fuel) is mm tons. However, Natasha does not know how much fuel to load into the rocket. Unfortunately, fuel can only be loaded on Earth, so if the rocket runs out of fuel on some other planet, Natasha will not be able to return home. Fuel is needed to take-off from each planet and to land to each planet. It is known that 11 ton of fuel can lift off aiai tons of rocket from the ii-th planet or to land bibi tons of rocket onto the ii-th planet.
For example, if the weight of rocket is 99 tons, weight of fuel is 33 tons and take-off coefficient is 88 (ai=8ai=8), then 1.51.5 tons of fuel will be burnt (since 1.5⋅8=9+31.5⋅8=9+3). The new weight of fuel after take-off will be 1.51.5tons.
Please note, that it is allowed to burn non-integral amount of fuel during take-off or landing, and the amount of initial fuel can be non-integral as well.
Help Natasha to calculate the minimum mass of fuel to load into the rocket. Note, that the rocket must spend fuel to carry both useful cargo and the fuel itself. However, it doesn't need to carry the fuel which has already been burnt. Assume, that the rocket takes off and lands instantly.
Input
The first line contains a single integer nn (2≤n≤10002≤n≤1000) — number of planets.
The second line contains the only integer mm (1≤m≤10001≤m≤1000) — weight of the payload.
The third line contains nn integers a1,a2,…,ana1,a2,…,an (1≤ai≤10001≤ai≤1000), where aiai is the number of tons, which can be lifted off by one ton of fuel.
The fourth line contains nn integers b1,b2,…,bnb1,b2,…,bn (1≤bi≤10001≤bi≤1000), where bibi is the number of tons, which can be landed by one ton of fuel.
It is guaranteed, that if Natasha can make a flight, then it takes no more than 109109 tons of fuel.
Output
If Natasha can fly to Mars through (n−2)(n−2) planets and return to Earth, print the minimum mass of fuel (in tons) that Natasha should take. Otherwise, print a single number −1−1.
It is guaranteed, that if Natasha can make a flight, then it takes no more than 109109 tons of fuel.
The answer will be considered correct if its absolute or relative error doesn't exceed 10−610−6. Formally, let your answer be pp, and the jury's answer be qq. Your answer is considered correct if |p−q|max(1,|q|)≤10−6|p−q|max(1,|q|)≤10−6.
input
2
12
11 8
7 5
output
10.0000000000
input
3
1
1 4 1
2 5 3
output
input
6
2
4 6 3 3 5 6
2 6 3 6 5 3
output
85.4800000000
Note
Let's consider the first example.
Initially, the mass of a rocket with fuel is 2222 tons.
- At take-off from Earth one ton of fuel can lift off 1111 tons of cargo, so to lift off 2222 tons you need to burn 22 tons of fuel. Remaining weight of the rocket with fuel is 2020 tons.
- During landing on Mars, one ton of fuel can land 55 tons of cargo, so for landing 2020 tons you will need to burn 44 tons of fuel. There will be 1616 tons of the rocket with fuel remaining.
- While taking off from Mars, one ton of fuel can raise 88 tons of cargo, so to lift off 1616 tons you will need to burn 22 tons of fuel. There will be 1414 tons of rocket with fuel after that.
- During landing on Earth, one ton of fuel can land 77 tons of cargo, so for landing 1414 tons you will need to burn 22 tons of fuel. Remaining weight is 1212 tons, that is, a rocket without any fuel.
In the second case, the rocket will not be able even to take off from Earth.
题意:
给你飞机初始重量,飞机要在所有机场起飞降落。一开始会携带一定重量的汽油,然后每次飞的过程会消耗掉相应汽油,而每个机场给的值是1吨汽油能让他飞多少。
求一开始最少携带多少汽油。
解题思路:
拿第一组样例来说
11 8
7 5
欲最小,回到起点时候肯定就耗光了汽油,而最后一个待过的机场是 7 机场,因为2*7=12+2,2吨汽油能让他飞14,恰好是飞机重量+耗油重量,依次回推2*8=14+2,16+4=5*4,20+2=11*2
得 x*(a[i]或者b[i])=s+x ,s为下一站油和机身的和,x和具体某个机场的耗油量。
说是数学,其实就是证明下就能发现,无论a[i] b[i]用哪个顺序,最后耗油最小量都一样
再注意点细节,就ok了
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define FastRead ios_base::sync_with_stdio(0);cin.tie(0) const int maxn=1e5+;
const int mod=1e9+; int n,a[],b[];
double s;
int main()
{
cin>>n>>s;
int f=;
for(int i=;i<=n;i++) {cin>>a[i];if(a[i]<=) f=;}
for(int i=;i<=n;i++) {cin>>b[i];if(b[i]<=) f=;}
if(f==) { puts("-1");return ; }
double sum=,x;
for(int i=;i<=n;i++)
{
x=s/(a[i]-),s+=x,sum+=x;
x=s/(b[i]-),s+=x,sum+=x;
}
printf("%.10f\n",sum);
return ;
}
Codeforces Round #499 (Div. 2) C. Fly(数学+思维模拟)的更多相关文章
- Codeforces Round #499 (Div. 2) C.FLY 数学推导_逆推
本题应该是可以使用实数二分的,不过笔者一直未调出来,而且发现了一种更为优美的解法,那就是逆推. 首先,不难猜到在最优解中当飞船回到 111 号节点时油量一定为 000, 这就意味着减少的油量等于减少之 ...
- Codeforces Round #499 (Div. 2) C Fly题解
题目 http://codeforces.com/contest/1011/problem/C Natasha is going to fly on a rocket to Mars and retu ...
- Codeforces Round #499 (Div. 1)
Codeforces Round #499 (Div. 1) https://codeforces.com/contest/1010 为啥我\(\rm Div.1\)能\(A4\)题还是\(\rm s ...
- Codeforces Round #499 (Div. 2)
Codeforces Round #499 (Div. 2) https://codeforces.com/contest/1011 A #include <bits/stdc++.h> ...
- Codeforces Round #499 (Div. 1)部分题解(B,C,D)
Codeforces Round #499 (Div. 1) 这场本来想和同学一起打\(\rm virtual\ contest\)的,结果有事耽搁了,之后又陆陆续续写了些,就综合起来发一篇题解. B ...
- Codeforces Round #499 (Div. 1) F. Tree
Codeforces Round #499 (Div. 1) F. Tree 题目链接 \(\rm CodeForces\):https://codeforces.com/contest/1010/p ...
- 7-27 Codeforces Round #499 (Div. 2)
C. Fly 链接:http://codeforces.com/group/1EzrFFyOc0/contest/1011/problem/C 题型:binary search .math. 题意:总 ...
- Codeforces Round #499 (Div. 2) D. Rocket题解
题目: http://codeforces.com/contest/1011/problem/D This is an interactive problem. Natasha is going to ...
- Codeforces Round #304 (Div. 2) D 思维/数学/质因子/打表/前缀和/记忆化
D. Soldier and Number Game time limit per test 3 seconds memory limit per test 256 megabytes input s ...
随机推荐
- tensorflow实战系列(四)基于TensorFlow构建AlexNet代码解析
整体流程介绍: 我们从main函数走,在train函数中,首先new了一个network;然后初始化后开始训练,训练时设定设备和迭代的次数,训练完后关闭流程图. 下面看network这个类,这个类有许 ...
- P45 实践作业
1. 影评: 观众数量多少,决定被虐者死亡速度的快慢.这一新奇但是残忍的想法,无疑是<网络杀机>的点睛之笔.公众.媒体对凶手网站主造成的伤害,比起那些用恶毒言论还要让人难受千百倍.他是一个 ...
- ajax----tomact服务器运行
一.菜鸟教程的代码本地运行 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- idea常用快捷键及操作
ctrl+j ===== 智能提示 可用模版及关键字 ctrl+p ===== 显示方法可填入的参数 ctrl+space ===== 补全提示项目中可用的变量 ctrl+shift+j ==== ...
- git配置正确且权限已开但是pull或push提示无权限
因为之前提示输入用户名和密码时输入错误,之后就一直权限认证失败.这种情况下在git bash中输入: git config --system --unset credential.helper 就会重 ...
- 深度学习中Dropout原理解析
1. Dropout简介 1.1 Dropout出现的原因 在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象. 在训练神经网络的时候经常会遇到过拟合的问题 ...
- 【收藏】UICrawler
基于 Appium 的 App UI 遍历 & Monkey 工具 (支持操作步骤回放) UICrawler https://github.com/lgxqf/UICrawler 基于Appi ...
- Python积累三:object() take no object!
A,报错:object() take no object! 根因:代码书写级错误!!!!! 两个原因: 1. __init__ 左右都是2个下划线,这里自己没掉进去! 2.init写成int,不是in ...
- input type="file"多图片上传 原生html传递的数组集合
单个的input type="file"表单也是可以实现多图片上传的 代码如下: <form action="manypic.php" method=&q ...
- ORM常用字段介绍
Django中的ORM Django项目使用MySQL数据库 1. 在Django项目的settings.py文件中,配置数据库连接信息: DATABASES = { "default&qu ...