【26.09%】【codeforces 579C】A Problem about Polyline
time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
There is a polyline going through points (0, 0) – (x, x) – (2x, 0) – (3x, x) – (4x, 0) – … - (2kx, 0) – (2kx + x, x) – ….
We know that the polyline passes through the point (a, b). Find minimum positive value x such that it is true or determine that there is no such x.
Input
Only one line containing two positive integers a and b (1 ≤ a, b ≤ 109).
Output
Output the only line containing the answer. Your answer will be considered correct if its relative or absolute error doesn’t exceed 10 - 9. If there is no such x then output - 1 as the answer.
Examples
input
3 1
output
1.000000000000
input
1 3
output
-1
input
4 1
output
1.250000000000
Note
You can see following graphs for sample 1 and sample 3.
【题目链接】:http://codeforces.com/contest/579/problem/C
【题解】
先把两种类型的线段方程搞出来:
/型的为y=x-2k*x0
\型的为y=-x+2k*x0
先考虑/型
移项一下
x0 = (x-y)/(2*k);
然后把(a,b)代入
x0 = (a-b)/(2*k); ·····①
然后再对k考虑
k = (a-b)/(2*x0)
因为x0为整个图像的最高的的y坐标;
所以x0 >= b;
则x0有最小值
则k<=(a-b)/(2*b);
再带回①式
因为k有最大值;所以
x0 >=(a-b)/(2*[(a-b)/(2*b)]);
[x]表示不超过x的最大整数;
对\型的直线同理可以得到
x0 >=(a+b)/(2*[(a+b)/(2*b)]);
要注意(a+b)/(2*b)和(a-b)/(2*b)都要大于等于1才行;
因为k就是原题中的n;而n显然应该要大于0;
【完整代码】
#include <bits/stdc++.h>
#define LL long long
using namespace std;
LL a,b;
int main()
{
cin >> a >> b;
double ans;
bool flag1 = true,flag2 = true;
if (a>=b)
{
if (a==b)
ans = b;
else
{
int temp = (a-b)/(2.0*b);
if (temp <1)
flag1 = false;
ans =(a-b)/(2*temp*1.0);
}
}
else
flag1 = false;
int temp = (a+b)/(2.0*b);
if (temp < 1)
flag2 = false;
{
double temp1 = (a+b)/(2*temp*1.0);
if (!flag1)
ans = temp1;
else
ans = min(ans,temp1);
}
if (flag1 || flag2)
printf("%.12lf\n",ans);
else
puts("-1");
return 0;
}
【26.09%】【codeforces 579C】A Problem about Polyline的更多相关文章
- 【2017.09.15 智能驾驶/汽车电子】汽车高级驾驶辅助ADAS常用传感器厂商:激光雷达篇
不定期更新,主要是汇总Internet上的激光雷达厂商资讯,不涉及技术,以备参考. 1. Innoviz:固态激光雷达公司 新闻链接:http://36kr.com/p/5092055.html 激光 ...
- 【 BowWow and the Timetable CodeForces - 1204A 】【思维】
题目链接 可以发现 十进制4 对应 二进制100 十进制16 对应 二进制10000 十进制64 对应 二进制1000000 可以发现每多两个零,4的次幂就增加1. 用string读入题目给定的二进制 ...
- 【26.83%】【Codeforces Round #380C】Road to Cinema
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 【26.67%】【codeforces 596C】Wilbur and Points
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【23.26%】【codeforces 747D】Winter Is Coming
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 【codeforces 797C】Minimal string
[题目链接]:http://codeforces.com/contest/797/problem/C [题意] 一开始,给你一个字符串s:两个空字符串t和u; 你有两种合法操作; 1.将s的开头字符加 ...
- 【codeforces 510C】Fox And Names
[题目链接]:http://codeforces.com/contest/510/problem/C [题意] 给你n个字符串; 问你要怎么修改字典序; (即原本是a,b,c..z现在你可以修改每个字 ...
- 【codeforces 807B】T-Shirt Hunt
[题目链接]:http://codeforces.com/contest/807/problem/B [题意] 你在另外一场已经结束的比赛中有一个排名p; 然后你现在在进行另外一场比赛 然后你当前有一 ...
- 【19.77%】【codeforces 570D】Tree Requests
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
随机推荐
- iOS_07_流程控制
一.流程控制 * 顺序结构:默认的流程结构.按照书顺序执行每一条语句. * 选择结构:对给定得条件进行判断,再根据判断结果来决定执行哪一段代码. * 循环结构:在给定条件成立的情况下,反复执行某一段代 ...
- 关于python的拷贝
https://blog.csdn.net/koukehui0292/article/details/82993958 Python的 深度拷贝: import copy d=copy.deepcop ...
- UVA 11800 - Determine the Shape 几何
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- jmeter--参数化的四种方法
本文转自:http://www.cnblogs.com/imyalost/p/6229355.html 参数化是自动化测试脚本的一种常用技巧.简单来说,参数化的一般用法就是将脚本中的某些输入使用参数来 ...
- FindBug:Call to static DateFormat
今天在重构代码的过程中碰到了一个问题.使用SimpleDateFormat的问题. 本人今天写了一个类,主要是提供很多静态的方法由其他接口调用,过程中多个方法使用到了日期的格式化,所以我讲Simple ...
- License控制实现原理(20140808)
近期须要做一个License控制的实现,做了一个设计,设计图例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGVjX2Zlbmc=/font/5 ...
- JS-OO-数据属性,访问器属性
一.数据属性 Configurable:表示能否通过Delete删除属性从而重新定义属性,能否修改属性的特性,能否把属性修改为访问器属性.默认true. Enumerable:表示能否通过for-in ...
- [Immutable.js] Updating nested values with ImmutableJS
The key to being productive with Immutable JS is understanding how to update values that are nested. ...
- hdu3360National Treasures (最大匹配,拆点法)
National Treasures Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- php用两个栈来实现队列
php用两个栈来实现队列 一.总结 我主要的问题是不知道的是题目描述,题目和贵的代码之间的关系,以及返回值 思路:A栈做入队操作,B栈做出队操作,入队的时候元素直接入A,出队的时候判断B栈是否为空,如 ...