LightOJ 1137 Expanding Rods(加热变化的路,二分)
来源:互联网 发布:seo.chinaz 编辑:程序博客网 时间:2024/03/29 10:04
When a thin rod of length L is heated n degrees, it expands to a new length L' = (1+n*C)*L, where C is the coefficient of heat expansion.
When a thin rod is mounted on two solid walls and then heated, it expands and takes the shape of a circular segment, the original rod being the chord of the segment.
Your task is to compute the distance by which the center of the rod is displaced. That means you have to calculate h as in the picture.
Input
Input starts with an integer T (≤ 20), denoting the number of test cases.
Each case contains three non-negative real numbers: the initial length of the rod in millimeters L, the temperature change in degrees n and the coefficient of heat expansion of the material C. Input data guarantee that no rod expands by more than one half of its original length. All the numbers will be between 0 and 1000 and there can be at most 5 digits after the decimal point.
Output
For each case, print the case number and the displacement of the center of the rod in single line. Errors less than 10-6 will be ignored.
Sample Input
Output for Sample Input
3
1000 100 0.0001
150 10 0.00006
10 0 0.001
Case 1: 61.3289915
Case 2: 2.2502024857
Case 3: 0
题意:
已知一个原来长度 l 的路,加热后变化(如图演示)
代码:
#include<stdio.h>#include<math.h>#define PI 3.1415926int main() {int t,v=1;scanf("%d",&t);double L,n,c;//原来长度:L ;加热的温度:n ;热膨胀系数:cwhile(t--) {scanf("%lf%lf%lf",&L,&n,&c);double L_change=(1.0+n*c)*L;//加热变化后的长度double left=0,right=PI/2.0;//这里逼近是转化到圆心角大小int dd=64;while(dd--) {double mid=(left+right)/2.0;//圆心角 double R=(L/2)/sin(mid);//半圆弧所在圆半径double new_L=2*R*mid;//新区间逼近的弧长 if(new_L>L_change) {right=mid;} else {left=mid;}}double ans=0.5*L/sin(left)-0.5*L/tan(left);//计算差值 h printf("Case %d: %.7lf\n",v,ans);v++;}return 0;}
- LightOJ 1137 Expanding Rods(加热变化的路,二分)
- 【LightOJ】1137 - Expanding Rods(二分 & 几何)
- lightoj 1137 Expanding Rods | 二分+几何
- Lightoj 1137 Expanding Rods (二分,数学)
- POJ1905 Expanding Rods(二分)
- Expanding Rods(二分+几何)
- LightOJ 1137 & Poj 1905 Expanding Rods
- poj 1905 (Expanding Rods) 二分的运用
- Light OJ:1137 Expanding Rods(二分+几何数学)
- Expanding Rods(数学公式推导+二分)
- poj-1905 Expanding Rods (二分)
- POJ 1905 Expanding Rods(二分)
- 【Light-oj】-Expanding Rods(二分&几何)
- POJ 1905 Expanding Rods(二分)
- POJ 1905Expanding Rods(计算二分)
- POJ 1905 Expanding Rods (二分)
- POJ - 1905 Expanding Rods (数学+二分)
- poj 1905 Expanding Rods(二分)
- KK's Steel<hdoj5620>菲波那切数列的应用
- HDU 1083 COURSES 【二分图最大匹配】
- 2017百度实习生招聘算法题
- Java Map集合的详解
- 第二章.一切皆是对象之对象创建存储过程(引用)
- LightOJ 1137 Expanding Rods(加热变化的路,二分)
- (21)HTML标签详解之<table><tr><th><td><thead><tbody><tfoot><caption>
- 中兴盒子第三方软件通用教程安装教程
- Date和Calendar类的一些使用
- RxJava
- windows 下实现socket编程_传送文件
- 语音合成与语音识别小例子
- sdut oj1197 约瑟夫问题(循环链表)
- 小菜鸟的C++游戏编程学习日记(二)